0
cmakeを使用してMacOSでGLFWをソースからビルドしたが、すべてうまくいった。私はclionにcmakeのを使用してプログラムをコンパイルしようとしていたときしかし、私は次のエラーました:私は、インターネットおよびドキュメントを通じて閲覧CMakeでCLion内のGLFW3ライブラリがMacOS上で未定義のシンボルを生成する
Scanning dependencies of target triangle
[ 50%] Building CXX object CMakeFiles/triangle.dir/main.cpp.o
[100%] Linking CXX executable triangle
Undefined symbols for architecture x86_64:
"_CFArrayAppendValue", referenced from:
__glfwInitJoysticksNS in libglfw3.a(cocoa_joystick.m.o)
_matchCallback in libglfw3.a(cocoa_joystick.m.o)
"_CFArrayCreateMutable", referenced from:
__glfwInitJoysticksNS in libglfw3.a(cocoa_joystick.m.o)
_matchCallback in libglfw3.a(cocoa_joystick.m.o)
... (There are a huge bunch of errors like this, let me know if you want to read all of them)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [triangle] Error 1
make[2]: *** [CMakeFiles/triangle.dir/all] Error 2
make[1]: *** [CMakeFiles/triangle.dir/rule] Error 2
make: *** [triangle] Error 2
を、私はこのように、フレームワークの引数を指定してコンパイルする必要があることが見つかりました:
cc -o myprog myprog.c -lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
コマンドラインで試したところ、うまくいきました。しかし、私がCLion(またはCMake?)で何かをやりたいのであれば、どうしたらいいですか、あるいはどのようにCMakeでフレームワークを使うことができますか?
私のCMakeLists.txtは、あなたが知りたい場合には:
cmake_minimum_required(VERSION 3.8)
project(triangle)
set(CMAKE_CXX_STANDARD 11)
find_package(glfw3 REQUIRED)
set(SOURCE_FILES main.cpp)
add_executable(triangle ${SOURCE_FILES})
target_link_libraries(triangle glfw3)