【问题标题】:How to install Criterion to specific folder?如何将 Criterion 安装到特定文件夹?
【发布时间】:2019-02-12 18:44:11
【问题描述】:

我有 Criterion 框架 (https://github.com/Snaipe/Criterion),我想从源代码构建它并安装到特定目录,因此标准的标头应位于 /usr/include/

和库 libcriterion.so 在 /usr/lib64 文件夹 我使用这个命令来构建和安装:

mkdir build
cd build
cmake ..
cmake --build . 
make install

它将 .so 文件安装到 /usr/local/ 文件夹,bash 命令 find / -name "*criterion*" 显示:

/usr/local/lib/libcriterion.so
/usr/local/lib/libcriterion.so.3
/usr/local/lib/libcriterion.so.3.1.0
/usr/local/share/pkgconfig/criterion.pc
/usr/local/include/criterion
/usr/local/include/criterion/criterion.h

如何修复我的命令,以便在安装后 libcriterion.so 位于 /usr/lib64 目录中?

【问题讨论】:

  • 若要选择另一个安装前缀,请将-DCMAKE_INSTALL_PREFIX=/usr 选项传递给cmake。请注意,您不能将库安装子目录 lib/ 更改为 lib64/,因为 lib硬编码到项目中。
  • 为什么你想安装到/usr/include而不是/usr/local/include?前者应该保留给几乎所有系统上的系统包含文件。

标签: makefile cmake installation


【解决方案1】:

使用 CMake 命令行选项不允许按要求更改库安装位置。您可以更改使用 -DCMAKE_INSTALL_PREFIX=... 选项,但这也会影响包含位置。

但是,由于您可以访问源代码,您可以简单地修改 CMakeLists.txt 文件并通过添加如下命令来设置库安装位置:

install(TARGETS ${PROJECT_NAME}
    LIBRARY DESTINATION lib64
)

更多详情,我可以链接到CMake documentation


顺便说一句:不需要显式创建构建目录,你的脚本可以是这样的

cmake -H. -Bbuild
cmake --build build
cmake --build build --target install

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多