gpt4 book ai didi

c++ - 使用 Cmake 和 QtCreator 时 undefined reference

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:13 26 4
gpt4 key购买 nike

我正在使用 OpenCV3.0.0 dev 运行基本的 OpenCV 示例:

project(ImageDenoise)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)

find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

MESSAGE(${OpenCV_LIBS})
MESSAGE(${OpenCV_INCLUDE_DIRS})

源代码:

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main(int argc, char* argv[] )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], IMREAD_COLOR );

if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);

waitKey(0);

return 0;
}

当我将此项目导入 QtCreator 时,在构建项目时出现以下链接错误:

[100%] Building CXX object CMakeFiles/ImageDenoise.dir/main.cpp.o
Linking CXX executable ImageDenoise
CMakeFiles/ImageDenoise.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x7c): undefined reference to `cv::imread(cv::String const&, int)'
main.cpp:(.text+0xf5): undefined reference to `cv::namedWindow(cv::String const&, int)'
main.cpp:(.text+0x144): undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'

但是,当我从命令行运行 cmake 并使用 make 时,它​​可以完美运行。这背后的原因是什么?

dzung@Cronus:~/kSVD/build$ make
Scanning dependencies of target ImageDenoise
[100%] Building CXX object CMakeFiles/ImageDenoise.dir/main.cpp.o
Linking CXX executable ImageDenoise
[100%] Built target ImageDenoise
dzung@Cronus:~/kSVD/build$ ls
CMakeCache.txt CMakeFiles cmake_install.cmake ImageDenoise Makefile
dzung@Cronus:~/kSVD/build$ ./ImageDenoise
usage: DisplayImage.out <Image_Path>

最佳答案

我遇到了完全相同的问题。我认为这是某种 Qt-creator 错误。

我通过以下方式解决了这个问题:

  1. 删除项目中除 *.cpp 和 CMakeLists.txt 之外的所有内容文件夹。
  2. 在使用 Qt-creator 创建任何东西之前:cmake。 && 制作
  3. 现在在 Qt-creator 中打开现有项目。
  4. 现在您可以正常运行 cmake/compile/run 等。

关于c++ - 使用 Cmake 和 QtCreator 时 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com