我正在尝试在 Mac OSX Mavericks 上编译 FLTK 程序 (http://www.fltk.org/index.php)。所有 .h 包都编译得很好,但我收到以下错误:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我尝试了
g++
和clang++ -stdlib=libstdc++
来编译程序,但两次都收到相同的错误。
我非常感谢有关此问题的任何意见,以消除此错误消息。
您想要使用
fltk-config
脚本,但在他们的文档中尚不清楚如何使用它。这是我使用的通用形式及其实际用途:
从命令行你可以像这样编译(这假设你需要图像库,opengl库并且希望静态链接[FLTK的一半])
g++ file1.cpp file2.cpp `fltk-config --use-forms --use-gl --use-images --ldstaticflags --cxxflags` -o output
这相当于
g++ file1.cpp file2.cpp -I/usr/local/include -I/usr/local/include/FL/images -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT /usr/local/lib/libfltk_images.a /usr/local/lib/libfltk_png.a -lz /usr/local/lib/libfltk_jpeg.a /usr/local/lib/libfltk_gl.a -framework AGL -framework OpenGL -framework ApplicationServices /usr/local/lib/libfltk_forms.a /usr/local/lib/libfltk.a -lpthread -framework Cocoa -o output
因此,如果您确保库位于 /usr/local/lib 中并且标头位于 /usr/local/include 中应该可以工作...
fltk-config
只是 fltk-1.3.2 (或其他)文件夹中的脚本。从 make 文件构建 FLTK 应该将其添加到您的路径中。如果没有复制它或将其定向到任何地方。但这确实让我想知道:你确实构建了这些库吗?
这对我有用:
#!/bin/bash
rm ./a.out
clang++ main.cpp -o a.out -std=c++17 -stdlib=libc++ \
-I/usr/include/fltk-1.3.8/FL \
-L/usr/local/lib \
$(fltk-config --ldflags) \
&& ./a.out
brew install fltk
fltk-config --compile ./example_file.cpp
./example_file