4

この問題は MacOS X 固有の問題です。lib_xxxビルド ツリーの外にある任意の場所にあるライブラリをリンクしたいと思います。すべてのシステムで同じ場所にあります。デフォルトでは、CMake は次のように依存関係を追加します。

@executable_path/libwupienginemac.dylib

@executable_path次のいずれかに変更する方法を知りたいです。

  1. ライブラリへの絶対パス。たとえば、次のotool出力が表示されます

    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    
  2. @rpathlib_xxxその後、を使用して場所を管理できましたRPATH。私はこのオプションを好みます。

ドキュメントとフォーラムから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
    )
4

1 に答える 1