# 添加头文件 include_directories(${PROJECT_SOURCE_DIR}/include) # 这里将子目录条件到工程,并指定编译的输出产物,默认输出产物保存到build/src文件夹下, # 如果不指定可行文件保存路径同样也会保存到该路径下 add_subdirectory(src) # 上面定义了将src子目录加入工程,并指定编译输出(包含编译中间结果)路径为 #...
语法:target_include_directories(target [INTERFACE|PUBLIC|PRIVATE] dir1 dir2 …) 其中,target为库文件或可执行文件 PRIVATE:私有的 INTERFACE:接口 PUBLIC:PUBLIC = PRIVATE + INTERFACE # 指定可执行文件main的头文件路径为include target_link_libraries(main include) 1. 2. 2.1.11 target_link_libraries 作用...
CMake的link_directories指令可以通过以下方式使用: link_directories(directory1 directory2 ...) 其中,directory1、directory2等表示需要添加到链接库搜索路径的目录。我们可以指定多个目录,用空格分隔开。 三、link_directories指令的影响因素 在使用link_directories指令时,有一些影响因素需要我们注意。下面是一些常见的影...
在CMake中,链接库是构建过程中的一个重要环节,它涉及到将库文件与可执行文件或共享库文件进行连接。CMake提供了几个命令来管理链接过程,其中link_directories和target_link_directories就是两个常用的命令。 link_directories link_directories命令用于向CMake添加链接器搜索库文件的目录。这意味着,当链接器需要查找库文...
使用link_directories指令,CMake将会在指定的目录中搜索所需的库文件,然后将其与目标文件进行链接。这通常用于指定第三方库文件的搜索路径,以方便CMake在构建时自动找到并链接这些库。 需要注意的是,虽然link_directories指令可以指定库文件的搜索路径,但它并不会自动链接库文件,需要使用target_link_libraries指令来显式...
link_directories(${CMAKE_PREFIX_PATH}/lib1 ${CMAKE_PREFIX_PATH}/lib2) 这个命令将多个库路径添加到链接器的搜索路径中。 通过本章的讨论,我们不仅了解了CMake如何处理不同来源的库,还看到了这一过程与人类整合知识的方式之间的相似之处。下一章将进一步探索CMake中RPATH设置的高级技巧,以及这些技巧如何帮助...
使用link_directories和target_link_directories都是为了能够链接库,但是link_directories只能在本目录下使用,而target_link_directories是全局的。 比如通过add_library添加子类,如果link_directories语句放在add_library后面,则该子类不会链接link_directories库,使用target_link_directories就不用担心顺序问题,全局都能链接。
link_directories(directory1 directory2 ...) 它相当于g++命令的-L选项的作用,也相当于环境变量中增加LD_LIBRARY_PATH的路径的作用。 比如: LINK_DIRECTORIES("/opt/MATLAB/R2012a/bin/glnxa64") LINK_LIBRARIES (添加需要链接的库文件路径,注意这里是全路径) ...
link_directories([AFTER|BEFORE] directory1 [directory2 ...]) 要注意的是:该命令调用后,只有这个命令调用之后创建的目标(库、可执行文件等)才会起作用。也就是说已经调用add_executable()或add_library()创建目标后,再调用link_directories()是没有效果的。
#LINK_DIRECTORIES(/usr/local/lib)#添加子目录,将会调用子目录中的CMakeLists.txtADD_SUBDIRECTORY(one)ADD_SUBDIRECTORY(two) 不同的地方是改为添加子目录: #添加子目录,将会调用子目录中的CMakeLists.txt ADD_SUBDIRECTORY(one)ADD_SUBDIRECTORY(two)