CACHE:可选参数,用于指定变量是否应该被缓存。缓存变量在配置过程中会被保留下来,并且可以在后续的构建中使用。如果不需要缓存变量,可以忽略或将其设置为OFF。 TYPE:可选参数,用于指定变量的类型。在CMake中,有多种变量类型可用,包括路径、文件、布尔值等。根据变量的用途选择适当的类型。 DOCSTRING:可选参数,用于提...
利用PROJECT_SOURCE_DIR 可以实现从子模块里直接获得项目最外层目录的路径。 不建议使用CMAKE_SOURCE_DIR,那样会让你的项目无法被人作为子模块使用。 其他相关变量 PROJECT_SOURCE_DIR:当前项目源码路径(存放main.cpp的地方) PROJECT_BINARY_DIR:当前项目输出路径(存放main.exe的地方) CMAKE_SOURCE_DIR:根项目源码路...
CMake通过EXECUTABLE_OUTPUT_PATH变量提供了一种灵活的方式来指定这些输出路径。 # 定义一个变量HOME,存储绝对路径set(HOME/path/to/your/project)# 设置可执行文件的输出路径set(EXECUTABLE_OUTPUT_PATH${HOME}/bin) 这里${HOME}是一个变量,它被替换为你在set命令中指定的路径。${HOME}/bin表示可执行文件将被放...
DESTINATION后面的路径可以自行制定,根目录默认为CMAKE_INSTALL_PREFIX,可以试用set方法进行指定,如果使用默认值的话,Unix系统的默认值为 /usr/local, Windows的默认值为 c:/Program Files/${PROJECT_NAME}。比如字linux系统下若LIBRARY的...
# 1、指定库的目录变量 set(libhello_src src/hello.cxx) # 指定头文件搜索路径 include_directories("${PROJECT_SOURCE_DIR}/include") # 2、添加库(对应的两个项目) add_library( hello_shared SHARED ${libhello_src}) add_library( hello_static STATIC ${libhello_src}) ...
一、设置当前目录输出 在CMake中,默认情况下,编译生成的文件(如目标文件、可执行文件等)会放在构建目录(通常是项目根目录下的build或out目录)中。如果你希望改变这些文件的输出路径,可以使用set命令来设置CMAKE_RUNTIME_OUTPUT_DIRECTORY、CMAKE_LIBRARY_OUTPUT_DIRECTORY和CMAKE_ARCHIVE_OUTPUT_DIRECTORY变量。 例如,如...
命令用于查找并定位系统上的库文件。你需要提供一个变量名(用于存储找到的库的路径)和库的名称。例如,find_library(MY_LIB NAMES MyLib)。在这个例子中,CMake 会在系统的库路径中搜索名为MyLib的库。如果找到了,MY_LIB变量的值将会被设置为该库的全路径。
目录list,针对Find<PackageName>.cmake 路径进行的find_package()搜索,需要指定到.cmake所在目录,而不是prefix。 9)CMAKE_SYSROOT 等同于--sysroot,一般设置在CMAKE_TOOLCHAIN_FILE指定的文件中,使用REALPATH,否则会出现一些异常(软链接等)。交叉编译的时候使用较多,所有路径(包括其他变量)会基于此路径解析,但他本...
变量设置 cmake中有很多已经定义好的默认变量,我们要知道其代表什么并且可以使用它们。这里假设我们的项目路径在/project中,而编译后文件的存放位置为/project/build。 PROJECT_SOURCE_DIR: 当前项目的路径,即为/project PROJECT_BINARY_DIR: 项目编译后存放的路径/project/build ...