CMakeLists.txt 不会创建可用的生成文件(Ubuntu 和 C++)



我是C 开发的新手,以及Makefiles一般的想法,所以请忍受我。我在Ubuntu 16.04 LTS上,如果有相关的话。

我正在尝试编译使用openCV库的平均color.cpp。

项目文件夹:

bin cmakelists.txt img lib obj src。/垃圾桶:./img:test.png./lib:core.hpp highgui.hpp imgproc.hpp opencv.hpp./obj:平均颜色。D计算平均颜色。Dmakefile-test.d平均color.o计算平均color.o makefile-test.o./src:平均颜色。cpp

我可以通过以下方式编译工作文件:

g++ average-color.cpp -o test `pkg-config --cflags --libs opencv`

在SRC目录中,这使我相信这不是代码错误,这是使用Cmake或我发现的某些Makefiles时的编译错误。

下面是我的cmakelists文件:

cmake_minimum_required(VERSION 2.8) 
PROJECT (name)
find_package(OpenCV REQUIRED )
set( NAME_SRC
src/average-color.cpp    
)
set( NAME_HEADERS       
     lib/core.hpp
     lib/highgui.hpp
     lib/imgproc.hpp
     lib/opencv.hpp
)
    INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/lib )
    link_directories( ${CMAKE_BINARY_DIR}/bin)
    set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
    add_executable( name ${NAME_SRC} ${NAME_HEADERS} )

当我运行" cmake"时,会生成一个makefile。从那里,运行" Make"失败:使用以下输出(在这里无法格式化)。http://textuploader.com/d5wks

如果有人发现我的cmakelists.txt,请解释一下,我还没有发现很多清楚的解释。

add_executable之后添加以下内容:

target_link_libraries(name ${OpenCV_LIBS})

这将告诉CMAKE将特定库链接到您的代码引用到可执行文件。指定链接目录只是告诉链接器在哪里可以找到这些库,target_link_libraries告诉链接目录中的链接哪些库。

最新更新