如何为库编写 CMake 安装?

cnd*_*cnd 5 installation cmake libraries make-install system-paths

这是我的尝试:

IF (NOT WIN32)
  #INSTALL_TARGETS(${LIB_INSTALL_DIR} ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so)
  #INSTALL(TARGETS ${tinyscheme-nix_BINARY_DIR}/libtinyscheme.so DESTINATION ${LIB_INSTALL_DIR})
ENDIF()
Run Code Online (Sandbox Code Playgroud)

两种变体都是错误的。我想libtinyscheme.so从移动${tinyscheme-nix_BINARY_DIR}/lib/lib64。基本上,我认为${LIB_INSTALL_DIR}可以处理它。

我怎样才能做到呢?我的错误在哪里?

Fra*_*ser 4

您可能需要此处FILES的版本install而不是TARGETS版本。

TARGETS的版本用于install已使用例如添加的实际 CMake 目标add_libraryadd_library在这种情况下,您将通过在命令期间分配的名称而不是其完整路径来引用目标。

因此,我认为在第二个命令中替换TARGETSFILES是这里的方法。

有关该install命令的完整详细信息,请运行:

cmake --help-command install
Run Code Online (Sandbox Code Playgroud)

  • @Sholy `install` 通常应该只指定相对于 [`${CMAKE_INSTALL_PREFIX}`](http://www.cmake.org/cmake/help/v2.8.8/cmake.html#variable:CMAKE_INSTALL_PREFIX) 的路径,所以如果您将 `${LIB_INSTALL_DIR}` 设置为适当的“lib”或“lib64”,并将 `${CMAKE_INSTALL_PREFIX}` 设置为其默认值,则该库最终将位于 /usr/local/lib 或 /usr/local /lib64。 (2认同)