cmake --install build 安装路径问题

cmake_minimum_required(VERSION 3.0.0)
project("zzz")

#  在执行cmake --install 命令时 a.txt 被copy到 include文件夹下
install(
    FILES
        a.txt
    DESTINATION
        include
)

Q:
以上是我的cmakelists.txt 文件,我运行cmake -B buildcmake --build buildcmake --install build 这三条命令,我期望a.txt 被安装到build/incldue文件夹下,但是a.txt文件被安装到了/usr/local/include/文件夹下,这是为什么?
A:
你的CMakeLists.txt文件中使用的是相对路径,并且没有指定install命令的PREFIX。因此,CMake默认将文件安装到系统的include目录下。

要将a.txt文件安装到build/include文件夹下,你可以修改CMakeLists.txt文件如下:

cmake_minimum_required(VERSION 3.0.0)

project("zzz")

install(
    FILES
        a.txt
    DESTINATION
        ${CMAKE_BINARY_DIR}/include
)

这里,${CMAKE_BINARY_DIR}表示build文件夹的根目录。通过使用${CMAKE_BINARY_DIR}/include作为DESTINATION,你将a.txt文件安装到build/include文件夹下。

修改后的CMakeLists.txt文件之后,重新运行CMake和构建命令:

cmake -B build
cmake --build build
cmake --install build

现在,a.txt文件应该会被安装到build/include文件夹下。

Q:
怎么指定install命令的PREFIX
A:
在CMake中,你可以使用CMAKE_INSTALL_PREFIX变量来指定install命令的PREFIX。以下是修改你的CMakeLists.txt文件的方式:

cmake_minimum_required(VERSION 3.0.0)

project("zzz")

# 设置安装目录为 build 目录
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})

install(
    FILES
        a.txt
    DESTINATION
        include
)

在这个例子中,set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) CMAKE_INSTALL_PREFIX 设置为${CMAKE_BINARY_DIR},即 build 目录。

然后,运行以下命令:

cmake -B build
cmake --build build
cmake --install build

这将安装a.txt文件到build/include目录下。确保在构建之前删除之前的build目录以确保清除旧的构建信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值