# 添加头文件 include_directories(${PROJECT_SOURCE_DIR}/include) # 这里将子目录条件到工程,并指定编译的输出产物,默认输出产物保存到build/src文件夹下, # 如果不指定可行文件保存路径同样也会保存到该路径下 add_subdirectory(src) # 上面定义了将src子目录加入工程,并指定编译输出(包含编译中间结果)路径为 #...
2.1.5 link_directories 2.1.6 add_subdirectory 2.1.7 add_compile_options 2.1.8 add_library 2.1.9 add_executable 2.1.10 target_include_directories 2.1.11 target_link_libraries 2.1.12 aux_source_directory 2.2 CMake常用变量 2.2.1 编译选项 2.2.2 目录 2.2.3 文件输出路径 3. CMake编译工程 3.1 ...
在CMake中,link_directories是一个用于设置链接库搜索路径的指令。本文将深入探讨link_directories指令的作用、使用方法和影响因素,并提供一些实例来帮助读者更好地理解和应用该指令。 一、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指令来显式...
target_link_directories(<target> [BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 使用link_directories和target_link_directories都是为了能够链接库,但是link_directories只能在本目录下使用,而target_link_directories是全局的。
不要在 CMake 中像这样使用 link_directories。 这是初学者的常见错误,因为许多其他构建环境都是这样工作的,但在 CMake 中它只是自找麻烦。甚至 官方文档 也特别建议不要这样做: 请注意,此命令 [ link_directories ] 很少需要。 find_package() 和find_library() 返回的库位置是绝对路径。将这些绝对库文件路径...
link_directories([AFTER|BEFORE] directory1 [directory2 ...]) 要注意的是:该命令调用后,只有这个命令调用之后创建的目标(库、可执行文件等)才会起作用。也就是说已经调用add_executable()或add_library()创建目标后,再调用link_directories()是没有效果的。
link_directories(${CMAKE_PREFIX_PATH}/lib1 ${CMAKE_PREFIX_PATH}/lib2) 这个命令将多个库路径添加到链接器的搜索路径中。 通过本章的讨论,我们不仅了解了CMake如何处理不同来源的库,还看到了这一过程与人类整合知识的方式之间的相似之处。下一章将进一步探索CMake中RPATH设置的高级技巧,以及这些技巧如何帮助...
当我们在写CMakeLists.txt文件时,常常会搞不明白link_directories, LINK_LIBRARIES, target_link_libraries这3者的区别,下面就其详细介绍: INCLUDE_DIRECTORIES(添加头文件目录) 它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java中用法类似)。