cmake的INCLUDE_DIRECTORIES命令不起作用
2017-01-11 23:22
316 查看
按照《CMake Practice》中第六章的设置,采用INCLUDE_DIRECTORIES命令去寻找共享库的路径,src/CMakeLists.txt如下:
执行cmake及make后,仍然有link error。
cmake的官网对include_directories的说明如下:
*Specify directories in which the linker will look for libraries.
link_directories(directory1 directory2 …)
Note that this command is rarely necessary. Library locations returned by find_package() and find_library() are absolute paths. Pass these absolute library file paths directly to the target_link_libraries() command. CMake will ensure the linker finds them.*
官网不推荐使用link_directoris,而是推荐使用find_package和find_library寻找共享库的绝对路径,再传给target_link_libraries使用。
按照这里的例子,改写了src/CMakeLists.txt如下:
这下可以编译通过了。
ADD_EXECUTABLE(main main.c) INCLUDE_DIRECTORIES(/tmp/include/hello) LINK_DIRECTORIES(/tmp/lib/) TARGET_LINK_LIBRARIES(main libhello.a)
执行cmake及make后,仍然有link error。
cmake的官网对include_directories的说明如下:
*Specify directories in which the linker will look for libraries.
link_directories(directory1 directory2 …)
Note that this command is rarely necessary. Library locations returned by find_package() and find_library() are absolute paths. Pass these absolute library file paths directly to the target_link_libraries() command. CMake will ensure the linker finds them.*
官网不推荐使用link_directoris,而是推荐使用find_package和find_library寻找共享库的绝对路径,再传给target_link_libraries使用。
按照这里的例子,改写了src/CMakeLists.txt如下:
ADD_EXECUTABLE(main main.c) INCLUDE_DIRECTORIES(/tmp/include/hello) find_library(LIBHELLO_PATH hello /tmp/lib) IF(NOT LIBHELLO_PATH) MESSAGE(FATAL_ERROR "libhello not found") ENDIF(NOT LIBHELLO_PATH) MESSAGE(STATUS ${LIBHELLO_PATH} " found") TARGET_LINK_LIBRARIES(main ${LIBHELLO_PATH})
这下可以编译通过了。
相关文章推荐
- make的link_directories命令不起作用
- cmake-include_directories
- CMake include_directories cannot open include file :'XXX'
- How to view include_directories in CMake
- linux 命令不起作用时怎么办(PATH路径改错后如何补救)
- C语言中两种方式使用#include命令,#include <>与#include ””的区别是什么?
- apache配置方法-实现html,shtml文件的include命令
- 用XCOPY命令实现考贝时不复制未修改的文件(解决Include拷贝问题)
- fedora shell脚本中的export命令不起作用
- shell中cd命令不起作用
- cmake 关于 link_directories 的问题
- VC2010中"Include Directories" 和 "Additional Include Directories"的区别
- 在ASPX页面中使用include命令的发现,在DIV中显示另一页面的内容,这样可以使页面更加简洁
- CMake学习记录--list(列表操作命令)
- CMakeFile命令之file
- rsync命令中的include参数顺序问题
- jacorb编译idl命令(含include)
- 基础知识--include命令用法
- #include命令, #include <>与#include ””的区别
- Apache Struts2 includeParams属性远程命令执行漏洞(CVE-2013-1966)