作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此问题是 MacOS X 特有的。我想链接一个位于我的构建树外部任意位置的库 lib_xxx
。它将位于所有系统中的同一位置。默认情况下,CMake 将添加依赖项,如下所示
@executable_path/libwupienginemac.dylib
我想知道如何将 @executable_path
更改为:
库的绝对路径。例如,我在 otool
输出中看到以下内容
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
@rpath
然后我可以使用 RPATH
管理 lib_xxx
的位置。我更喜欢这个选项。
从文档和论坛来看,CMAKE_MACOSX_RPATH
应该可以解决问题并实现选项 (2)。然而下面的 CMakeLists.txt
仍然会产生 @executable_path/libwupienginemac.dylib
依赖项。
cmake_minimum_required(VERSION 3.1)
project(xxx_test)
set(CMAKE_MACOSX_RPATH 1)
find_library(LIB_XXX lib_xxx
PATHS "/path/to/lib_xxx/lib"
)
if (NOT LIB_XXX)
message(FATAL_ERROR ""LIB XXX not found")
endif()
add_executable(xxx_test xxx_test.cpp)
target_link_libraries(xxx_test
${LIB_XXX}
)
# Try running the executable at once
add_custom_target(wibut_test_run ALL
COMMAND xxx_test
DEPENDS xxx_test
)
最佳答案
看起来目前 CMake 没有任何机制来处理这个问题。我最终将外部依赖项复制到 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY},这对于我的场景来说效果很好。
处理此问题的另一种方法是使用 install_name_tool -id
关于macos - 使用 CMAKE_MACOSX_RPATH 链接构建树外部的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133020/
此问题是 MacOS X 特有的。我想链接一个位于我的构建树外部任意位置的库 lib_xxx 。它将位于所有系统中的同一位置。默认情况下,CMake 将添加依赖项,如下所示 @executable_p
我是一名优秀的程序员,十分优秀!