如何避免在cmake中自动链接Qt5库?

问题描述 投票:0回答:1

我打算编译以下opencv代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
   printf("hello world \n");
   return 0;
}

我的CMakeLists.txt是以下内容:

cmake_minimum_required(VERSION 2.8)
find_package( OpenCV REQUIRED )
project( main )
add_executable(main main.cpp )
target_link_libraries( main ${OpenCV_LIBS} )

编译后的结果如下:

[ 50%] Building CXX object CMakeFiles/main.dir/main.cpp.o
[100%] Linking CXX executable main
/usr/bin/ld: cannot find -lQt5::Core
/usr/bin/ld: cannot find -lQt5::Gui
/usr/bin/ld: cannot find -lQt5::Widgets
/usr/bin/ld: cannot find -lQt5::Test
/usr/bin/ld: cannot find -lQt5::Concurrent
/usr/bin/ld: cannot find -lQt5::OpenGL
collect2: error: ld returned 1 exit status
CMakeFiles/main.dir/build.make:143: recipe for target 'main' failed
make[2]: *** [main] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/main.dir/all' failed
make[1]: *** [CMakeFiles/main.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

我相信CMake以自动方式包括Qt5库,我想知道如何避免这种情况。

c++ cmake linker qt5 qt4
1个回答
0
投票

CMake的思想是从不添加不需要的内容。 Qt库可能已添加到CMake的配置列表中。

它们可能会出现在您使用的标准变量中。您可以通过

打印内容
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}") 

配置文件的外观为OpenCVConfig.cmake.in,并且可能包括由于某些原因已更改的其他文件。

© www.soinside.com 2019 - 2024. All rights reserved.