2014-02-11 40 views
1

我想编译我的第一个FLTK文件。首先我用gcc用-lfltk选项编译它,我得到这个错误:与gcc FLTK编译错误

/usr/bin/ld: /tmp/ccX7sPxQ.o: undefined reference to symbol '[email protected]@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-配置--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 
+0

这可能有助于提供的'FLTK-config中的输出[ - ] --cflags/CXXFLAGS/LDFLAGS/compile' - 又见:['男人FLTK-config'] (http://linux.die.net/man/1/fltk-config)。如果你不使用'g ++',你在用什么? 'clang'?总之,你需要提供更多的信息。 –

回答

3

-lfltk是不够的,建立一个基于最小FLTK的应用程序。

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

假设你的FLTK应用程序未使用额外的FLTK库(OpenGL图像,图像的形式),并且是在一个单一的文件,称为myfltkapp.cpp,绝对最快的方式来编译和正确链接它会:

fltk-config --compile myfltkapp.cpp

+2

我不知道fltk-config实际上可以编译cxx代码。谢谢。 –

1

我想我得到错误的原因来自gcc和g ++之间的区别。我想我可以通过gcc与fltk库进行编译,但gcc不会自动链接C++标准库。因此你必须包含用于gcc的C++标准库。这是一个愚蠢的问题。

gcc myfltkapp.cpp -lstdc++ -lfltk 

What is the difference between g++ and gcc?