2014-02-11 3 views
1

Я пытаюсь скомпилировать свой первый файл FLTK. Сначала я собирал его НКУ с -lfltk вариант, и я получил эту ошибку:Ошибка компиляции FLTK с помощью gcc

/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-конфигурации [- ] --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++. Таким образом, вы должны включить стандартную библиотеку C++ для gcc. Это был глупый вопрос.

gcc myfltkapp.cpp -lstdc++ -lfltk 

What is the difference between g++ and gcc?

Смежные вопросы