在Mac上编译FLTK程序

问题描述 投票:0回答:3

我正在尝试在 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++
来编译程序,但两次都收到相同的错误。

我非常感谢有关此问题的任何意见,以消除此错误消息。

c++ macos fltk
3个回答
3
投票

您想要使用

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 应该将其添加到您的路径中。如果没有复制它或将其定向到任何地方。但这确实让我想知道:你确实构建了这些库吗?


0
投票

这对我有用:

#!/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


0
投票
  • 运行:
brew install fltk
  • 要编译您的文件,请输入:
fltk-config --compile ./example_file.cpp
  • 将 example_file.cpp 替换为您拥有的文件名。
  • 要运行生成的可执行文件,请键入:
./example_file
  • 将 example_file 替换为您拥有的文件名。
© www.soinside.com 2019 - 2024. All rights reserved.