【问题标题】:FLTK compile error with gcc使用 gcc 的 FLTK 编译错误
【发布时间】:2014-03-08 19:05:32
【问题描述】:

我正在尝试编译我的第一个 FLTK 文件。首先我通过 gcc 使用 -lfltk 选项编译它,我得到了这个错误:

/usr/bin/ld: /tmp/ccX7sPxQ.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

为什么我会收到此错误消息?如果我改用 g++,它只会编译它。

编辑。 fltk-config --cxxflags 返回:

-I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include 
-I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   
-I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 
-I/usr/include/libpng12    -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT

【问题讨论】:

  • 提供fltk-config [--<using>] --cflags / cxxflags / ldflags / compile 的输出可能会有所帮助 - 另请参阅:man fltk-config。如果您不使用g++,您使用的是什么? clang?简而言之,您需要提供更多信息。

标签: gcc compilation fltk


【解决方案1】:

我猜我得到错误的原因来自 gcc 和 g++ 之间的差异。我以为我可以通过 gcc 和 fltk 库来编译它,但是 gcc 不会自动链接 c++ 标准库。因此,您必须包含 gcc 的 C++ 标准库。这是一个愚蠢的问题。

gcc myfltkapp.cpp -lstdc++ -lfltk

What is the difference between g++ and gcc?

【讨论】:

    【解决方案2】:

    -lfltk 不足以构建基于 FLTK 的最小应用程序。

    我强烈建议您阅读以下页面:http://www.fltk.org/doc-1.3/basics.html。它清楚地解释了如何编译一个简单的 FLTK 程序。

    假设您的 FLTK 应用程序没有使用额外的 FLTK 库(opengl、图像、表单)并且位于一个名为 myfltkapp.cpp 的文件中,那么正确编译和链接它的绝对最快的方法是是:

    fltk-config --compile myfltkapp.cpp

    【讨论】:

    • 不知道fltk-config居然可以编译出cxx代码。谢谢。
    • 一百万个赞。这怎么不是每个教程的一部分?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多