は:右図書館をcmakeの外部プロジェクトとしてGLFWにリンクする方法は?私はこのようなGLFW含むてる
ExternalProject_Add(glfw-external
URL https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/glfw
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/install
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
)
add_dependencies(ShittyLife glfw-external)
if(UNIX)
set(GLFW_LIB <What to put here?> libglfw3.a)
else()
set(GLFW_LIB ${install_dir}/lib/glfw3.lib)
endif()
LIBSは後でGLFW_LIB変数を使用してリンクされています。
これはWindowsでうまく動作しますが、Linuxではいくつかのライブラリがありません。 glfwのWebページにはこれに対する解決策がありますが、どれもExternalProject_addの方法と互換性がないようです。
必要なライブラリがどのようになっているのか、どのように考えればいいですか?
場合、それはここに便利です構築しようとしたときに私が取得エラーです:
関連ビット:
/usr/bin/ld: /home/molion/Desktop/ShittyLife/build/install/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
はそれのすべて:
[ 94%] Building CXX object CMakeFiles/ShittyLife.dir/src/main.cpp.o
[100%] Linking CXX executable ShittyLife
/usr/bin/ld: /home/molion/Desktop/ShittyLife/build/install/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/ShittyLife.dir/build.make:95: recipe for target 'ShittyLife' failed
make[2]: *** [ShittyLife] Error 1
CMakeFiles/Makefile2:68: recipe for target 'CMakeFiles/ShittyLife.dir/all' failed
make[1]: *** [CMakeFiles/ShittyLife.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
外部プロジェクトをビルドした後、 '$ {CMAKE_CURRENT_BINARY_DIR}/install'ディレクトリの内容は何ですか? –