将库 .h 附加到 makefile

Posted

技术标签:

【中文标题】将库 .h 附加到 makefile【英文标题】:Attach library .h to makefile 【发布时间】:2016-12-06 17:52:19 【问题描述】:

我想在 cmake 中将 librarywiringPi.h 添加到我的 Makefile 中,但是 cmake 没有看到这个头文件。

cmake_minimum_required(VERSION 2.8)
project( program )
include_directories(include)
find_package( OpenCV REQUIRED )
add_executable( program program.cpp )
target_link_libraries( program $OpenCV_LIBS ) 

项目组织为:

|-- CMakeLists.txt | |-- 程序.cpp | |-- 连线Pi.h

我应该如何将此标头添加到 Makefile?

【问题讨论】:

您不需要添加标题。 CMake 自己计算出来。 @Stargateur 我转储了 add_executable(program program.cpp),我尝试了你的方法,但它不起作用 /home/luko/naukacop/program.cpp:2:22:致命错误:wiringPi。 h:没有这样的文件或目录编译终止。 CMakeFiles/program.dir/build.make:62:目标“CMakeFiles/program.dir/program.cpp.o”的配方失败 make[2]:*** [CMakeFiles/program.dir/program.cpp.o]错误 1 ​​CMakeFiles/Makefile2:67: 目标“CMakeFiles/program.dir/all”的配方失败 make[1]: *** [CMakeFiles/program.dir/all] 错误 2 Makefile:83: 目标“所有”的配方制作失败:*** [全部] 错误 2 cmake_minimum_required(VERSION 2.8) project( program ) include_directories(wiringPi) add_executable(wiringPi lukasz22/naukacop/wiringPi.h ) find_package( OpenCV REQUIRED ) add_executable( program program.cpp wiringPi.h) target_link_libraries( program $OpenCV_LIBS ) @Stargateur 是否正确?我收到一些错误:( @Stargateur 抱歉,今天我开始使用 ***。 `CMakeLists.txt:4 (add_executable) 处的 CMake 错误:找不到源文件:luko/naukacop/wiringPi.h 已尝试扩展名 .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh 。 h++ .hm .hpp .hxx .in .txx ' 是的,我使用了树,但我的库在文件夹中,但我只在 CMakeFiles 中看到我的库 【参考方案1】:

这必须适用于您的情况:

cmake_minimum_required(VERSION 2.8)
project(program)
find_package(OpenCV REQUIRED)
add_executable(program program.cpp wiringPi.h)
target_link_libraries(program $OpenCV_LIBS)

如果您需要更多信息,请阅读此How to properly add include directories with CMake?。你应该阅读官方的tuto。请注意,2.8 是一个非常旧的版本,您应该更新到最新的稳定版。

【讨论】:

以上是关于将库 .h 附加到 makefile的主要内容,如果未能解决你的问题,请参考以下文章

g ++将库附加到应用程序

为啥将库添加到链接器命令行两次?

MakefileMakefile 中 LINUXINCLUDE 的作用

MakefileMakefile 中 LINUXINCLUDE 的作用

MakefileMakefile 中 LINUXINCLUDE 的作用

MakefileMakefile 中 LINUXINCLUDE 的作用