cmake外部项目命令似乎忽略了INSTALL_DIR。 、 首先,我对cmake相对来说是个新手。我试图使用cmake构建一个具有单个外部依赖关系的项目。我将外部项目的INSTALL_DIR指定为CMAKE_INSTALL_PREFIX,因此它安装到与父项目相同的位置。但是当我运行make时,它会忽略它并尝试安装到/usr/local/lib。这是我的CMakeList.txt: ...
IF(NOT EXISTS "${LOCAL_OCI_LIB_ZIP_DL_DIR}/${OCI_LIB_UNZIP_DIR_NAME}" OR NOT EXISTS "${LOCAL_OCI_LIB_ZIP_DL_DIR}/${LOCAL_OCI_INCLUDE_DIR_NAME}" OR NOT EXISTS "${LOCAL_OCI_LIB_ZIP_DL_DIR}/${LOCAL_OTL_INCLUDE_DIR_NAME}" ) #输出提示信息准备进行解压缩 MESSAGE(STATUS "cd $...
install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/ DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN "internal" EXCLUDE) 在这个例子中,所有 .h 文件将被复制到 "include" 目录,但 "internal" 目录将被排除。 通过以上的描述和示例,我们可以看到 CMake 的 install() 命令如何帮助我们管理和控制文件和目录...
执行了上一条指令,即定义了一个项目名称CRNode,相应的会生成两个变量:CRNode_BINARY_DIR, CRNode_SOURCE_DIR。 cmake中预定义了两个变量:PROJECT_BINARY_DIR与PROJECT_SOURCE_DIR。 在这个例子中: PROJECT_BINARY_DIR = CRNode_BINARY_DIR PROJECT_SOURCE_DIR = CRNode_SOURCE_DIR 笔者强烈推荐直接使用PROJECT_...
Module 模式:添加路径到CMAKE_MODULE_PATH变量(与include()命令共同使用这些路径) Config 模式:添加路径到Abc_DIR变量(直接设置为环境变量也可以) 例如找到 QT 库所需要的配置文件,如果 QT 直接安装在 Windows 的 E 盘根目录,那么配置文件和库文件的位置可能是 ...
@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( TARGETS cxx17 cxx17_test RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin COMPONENT runtime ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/lib COMPONENT lib ) 1. 2. 3. 4. 5. 这里编译生成了可执行文件和静态库,可以通过指定COMPOENNT只安装需要的lib,RUNTIME没有安装。
PUBLIC_HEADER DESTINATION include # 头文件安装路径 ) 1. 2. 3. 4. 5. 6. 7. LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可选的,可以根据需要进行选择。 DESTINATION后面的路径可以自行制定,根目录默认为CMAKE_INSTALL_PREFIX,可以试用set方法进行指定,如果使用默认值...
指定安装位置 sudo make -j8 sudo make install 看到安装好的库和头文件 2引用的时候 1 2 3 4 # 添加指定安装位置 set(Pangolin_DIR /home/r9000k/v2_project/v3_SLAM/激光雷达slam/Pangolin/install) find_package(Pangolin REQUIRED) include_directories(${Pangolin_INCLUDE_DIRS})...
#include <iostream>usingnamespacestd;intmain(intargc,char**argv ) { cout<<"Hello World!"<<endl;return0; } src/CmakeLists.txt 文件内容: CMAKE_MINIMUM_REQUIRED( VERSION2.8) # 声明要求的 cmake 最低版本 #SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) ...