Makefile 如何将Criteria安装到特定文件夹?

Makefile 如何将Criteria安装到特定文件夹?,makefile,cmake,installation,Makefile,Cmake,Installation,我有Criteria框架,我想从源代码构建它并安装到特定的目录,所以Criteria的头应该位于 /usr/包括/ 以及/usr/lib64文件夹中的libcriteria.so库 我使用此命令生成和安装: mkdir build cd build cmake .. cmake --build . make install 它将.so文件安装到/usr/local/folder,bash命令find/-name*criteria*显示如下: /usr/local/lib/libcriteri

我有Criteria框架,我想从源代码构建它并安装到特定的目录,所以Criteria的头应该位于 /usr/包括/

以及/usr/lib64文件夹中的libcriteria.so库 我使用此命令生成和安装:

mkdir build
cd build
cmake ..
cmake --build . 
make install
它将.so文件安装到/usr/local/folder,bash命令find/-name*criteria*显示如下:

/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

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

使用CMake命令行选项不允许根据请求更改库安装位置。您可以使用-DCMAKE\u INSTALL\u前缀=。。。选项,但这也会影响包含位置

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

install(TARGETS ${PROJECT_NAME}
    LIBRARY DESTINATION lib64
)
有关更多详细信息,我可以链接到

顺便说一下:不需要显式地创建构建目录,您的脚本可以如下所示

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

对于“选择另一个安装前缀”,请为cmake传递-DCMAKE\u INSTALL\u prefix=/usr选项。请注意,不能将库安装子目录lib/更改为lib64/,因为lib是硬编码到项目中的。为什么要安装到/usr/include而不是/usr/local/include?前者应该为几乎任何系统上的系统包含文件保留。