我有一个在静态库中同时使用 OpenCv 和 wxWidgets 的项目。这两个库具有 jpeg 的定义,因此在编译期间会产生冲突。
因为我没有使用 wxwidget 中的 jpeg,所以我想从我的应用程序中删除这个库。我测试了我的应用程序,如果我从 MSVC poroject 手动删除这个库,它运行良好。
在 cmake 中,我用这一行将 wxwidgets 添加到我的项目中:
set(wxWidgets_CONFIGURATION msvc)
find_package(wxWidgets COMPONENTS core base adv REQUIRED)
include(${wxWidgets_USE_FILE})
如何指示 cmake 不将 wxjpeg.lib 添加到请求的链接库中?
根据这个 cmake 模块 ( link ) 的文档,我会说添加
set(wxWidgets_EXCLUDE_COMMON_LIBRARIES TRUE)
在使用 find_package
命令之前足以排除 wxjpeg.lib
。由于这也排除了其他公共(public)库(例如 png
),您可能必须在调用 find_package
时明确包含更多内容
find_package(wxWidgets COMPONENTS core base adv png REQUIRED)
我是一名优秀的程序员,十分优秀!