Code Monkey home page Code Monkey logo

Comments (10)

libaineu2004 avatar libaineu2004 commented on August 10, 2024 1

有宏定义#ifdef _WIN32在控制,怕啥跨平台?

比如我使用 MinGW,并不需要主动链接 user32.lib。我知道也可以同样的形式判断是否是 MinGW,但我不觉得这种做法很干净。

目前的 qmake 配置只是为了最初 Qt6 支持的简单测试而预留的,后续也会移除。我比较介意在代码(而不是构建脚本)里写编译器限定的特性。

能加就加一下,不能加也请readme文档说明一下,不然我们直接拿到这套源码,qmake一编译就报错。也不好。

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024 1

哦对了,作为补充:qmake 构建的版本是完全没包含 EXIV2 支持的,所以不能读取图片内的 EXIF 和 XMP 等元信息。如果希望有这类支持的话,还是建议考虑切换到 CMake。

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024

你是使用的 CMake 的方式使用 MSVC 工具链构建的吗?

#pragma comment 是 MSVC 特有的 macro,我在 CMake 确实没特别指定这个库的链接...

edit: 查了一下,CMake 在 MSVC 下默认 CMAKE_CXX_STANDARD_LIBRARIES 变量中是包含 user32.lib 的,所以你是使用 qmake 构建的吗?如果是,切换到 CMake 构建也会有问题吗?

from pineapple-pictures.

libaineu2004 avatar libaineu2004 commented on August 10, 2024

你是使用的 CMake 的方式使用 MSVC 工具链构建的吗?

#pragma comment 是 MSVC 特有的 macro,我在 CMake 确实没特别指定这个库的链接...

edit: 查了一下,CMake 在 MSVC 下默认 CMAKE_CXX_STANDARD_LIBRARIES 变量中是包含 user32.lib 的,所以你是使用 qmake 构建的吗?如果是,切换到 CMake 构建也会有问题吗?

我是qmake编译的。你在源码新增#pragma comment(lib, "user32.lib")就好了。

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024

你是使用的 CMake 的方式使用 MSVC 工具链构建的吗?
#pragma comment 是 MSVC 特有的 macro,我在 CMake 确实没特别指定这个库的链接...
edit: 查了一下,CMake 在 MSVC 下默认 CMAKE_CXX_STANDARD_LIBRARIES 变量中是包含 user32.lib 的,所以你是使用 qmake 构建的吗?如果是,切换到 CMake 构建也会有问题吗?

我是qmake编译的。你在源码新增#pragma comment(lib, "user32.lib")就好了。

如上所说,#pragma comment(lib, "user32.lib") 是 MSVC 特有的宏,对于跨平台程序,这个不适合直接写进去。

你可以尝试下使用 CMake 构建吗?理论上,使用 CMake 的话,不需要任何修改就可以完成编译。

from pineapple-pictures.

libaineu2004 avatar libaineu2004 commented on August 10, 2024

#ifdef _WIN32
#include <windows.h>
#pragma comment(lib, "user32.lib")
#endif // _WIN32

有宏定义#ifdef _WIN32在控制,怕啥跨平台?
#ifdef _WIN32
#include <windows.h>
#pragma comment(lib, "user32.lib")
#endif // _WIN32
我平时开发只用qmake

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024

有宏定义#ifdef _WIN32在控制,怕啥跨平台?

比如我使用 MinGW,并不需要主动链接 user32.lib。我知道也可以同样的形式判断是否是 MinGW,但我不觉得这种做法很干净。

目前的 qmake 配置只是为了最初 Qt6 支持的简单测试而预留的,后续也会移除。我比较介意在代码(而不是构建脚本)里写编译器限定的特性。(p.s. 即便是 qmake,也是应该在 .pro 文件中指定链接对应的库才是恰当的做法)

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024

能加就加一下,不能加也请readme文档说明一下,不然我们直接拿到这套源码,qmake一编译就报错。也不好。

我暂时没 MSVC + qmake 环境,随后找个环境测试下,然后看看要不要更新下 .pro 文件。感谢反馈。

from pineapple-pictures.

libaineu2004 avatar libaineu2004 commented on August 10, 2024

哦对了,作为补充:qmake 构建的版本是完全没包含 EXIV2 支持的,所以不能读取图片内的 EXIF 和 XMP 等元信息。如果希望有这类支持的话,还是建议考虑切换到 CMake。

好的。建议这条信息在readme说明一下。谢谢!

from pineapple-pictures.

BLumia avatar BLumia commented on August 10, 2024

其实原本 README 压根没提到 QMake,所以现在 README 补充了关于 QMake 不受此项目直接支持的描述。

至于问题本身,已更新 .pro 文件来链接对应的库,且添加了一个 CI 来检查这个问题。

from pineapple-pictures.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.