其中hello_world_prj为CMake工程项目名字(project name) 使用命令: cmake --install . --prefix "f:/mylib/" 这样就会将项目安装在f:/mylib/下: 如果取: cmake --install . --prefix "f:/mylib/hello_world_prj/" 则有: 即: 前面运行安装命令是在build文件夹运行的,也就是在: g:\work\cmake_w...
install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") 更加完备的命令格式为: install(DIRECTORY dirs... TYPE <type> | DESTINATION [FILES_MATCHING] [[PATTERN <pattern> | REGEX <regex>] [EXCLUDE] [PERMISSIONS permissions...]] TYPE/DESTINATION 安装目录...
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) 在第一节我们提到了<projectname>_BINARY_DIR和PROJECT_BINARY_DIR变量,他们指的编译发生的当前目录,如果是内部编译,就相当于PROJECT_SOURCE_DIR也就是工程代码所在目录,如果是外部编译,指的是外部编译...
PROJECT_NAME: 工程名。 PROJECT_SOURCE_DIR: 当前工程的顶级目录。 [Project name]_BINARY_DIR: 对应工程的顶级构建目录。 [Project name]_SOURCE_DIR: 对应工程的源码目录。
@PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") # find_dependency(OtherLib REQUIRED) check_required_components("@PROJECT_NAME@") 文件放在跟install script的CMakeList.txt同级目录下 如何集成到项目中 find_package(xxx 1.0.0 CONFIG REQUIRED) target_link_libraries(ma...
install(FILES myheader.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include) 2.3 实例分析 (Case Study) 让我们通过一个具体的例子来更好地理解这一过程。假设我们有一个 C++ 项目,项目结构如下: myproject/│ CMakeLists.txt└───src/└───main.cpp ...
其中cmake命令主要任务是按照CMakeLists.txt编写的规则生成MakeFile,而make会按照MakeFile进行编译、汇编和链接,从而生成可执行文件或者库文件。make install则是将编译好的文件安装到指定的目录。 CMake常用的命令或函数包括: 定义项目: project(myProject C CXX):该命令会影响PROJECT_SOURCE_DIR、PROJECT_BINARY_DIR...
install (FILES "${PROJECT_BINARY_DIR}/config.h" DESTINATION include) 1. 2. 3. 4. 通过上面的定制,生成的 Demo 文件和 MathFunctions 函数库 libMathFunctions.o 文件将会被复制到/usr/local/bin中,而 MathFunctions.h 和生成的 config.h 文件则会被复制到/usr/local/include中。我们可以验证一下(顺...
首先,我们来看一下CMake Install在大型项目中的常见用法。 3.1.1 使用CMake Install进行项目安装(Project Installation with CMake Install) 在大型项目中,我们通常需要将构建的结果(例如可执行文件、库文件等)安装到指定的位置。这时,我们就可以使用CMake Install的install()命令。例如,我们可以使用以下命令将一个可...
这里就牵涉到跨平台问题。在windows平台下是通过project文件去管理这些的,如果不用cmake,那我们为window和linux系统就要写对应的project文件和makefile文件,这无疑是一件繁琐的事,而我们只要编写一次cmake,就可以用在各个平台,而且其语法也简单。这就是所谓的“write once,use everywhere”。