错误的CMake安装目录

时间:2018-12-31 15:59:56

标签: cmake installation

我这样使用CMake GNUInstallDirs

set(BINDIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE STRING "Where install binary")
set(DATADIR "${CMAKE_INSTALL_FULL_DATADIR}/cubosphere" CACHE STRING "Data location (install-time)")
set(RUNTIME_DATADIR "${DATADIR}" CACHE STRING "Data location (run-time)")

但是,如果未指定CMAKE_INSTALL_PREFIX,则会得到/bin/shared作为值。

也可以使用message(WARNING "${CMAKE_INSTALL_FULL_DATADIR}")接收奇怪的结果:/bin干净运行,/usr/local/bin缓存的。

是否有一种方法可以解决此问题,例如使用/usr/local/bin而不是/bin

1 个答案:

答案 0 :(得分:1)

仅在调用CMAKE_INSTALL_PREFIX时,CMake才会设置project()默认值。由于模块GNUInstallDirs使用此变量,因此应在project()之后

project(MyProject)
# ...
include(GNUInstallDirs)