2016-01-30 2 views
0

Я установил FLTK1.3 в свою систему Ubuntu 12.04.ошибка компиляции с FLTK: неопределенная ссылка на `Fl_Menu_Bar 'и' Fl_Int_Input '

sudo apt-get install libfltk1.3-dev 
sudo apt-get install libx11-dev 

Я пытаюсь построить проект компьютерной графики с FLTK, но получаю некоторые ошибки.

$ make 
g++ -g -fpermissive -std=c++11 -o trace src/main.o src/getopt.o src/RayTracer.o src/ui/CommandLineUI.o src/ui/GraphicalUI.o src/ui/TraceGLWindow.o src/ui/debuggingView.o src/ui/glObjects.o src/ui/debuggingWindow.o src/ui/ModelerCamera.o src/fileio/imageio.o src/fileio/buffer.o src/parser/Token.o src/parser/Tokenizer.o src/parser/Parser.o src/parser/ParserException.o src/scene/camera.o src/scene/light.o src/scene/material.o src/scene/ray.o src/scene/scene.o src/SceneObjects/Box.o src/SceneObjects/Cone.o src/SceneObjects/Cylinder.o src/SceneObjects/trimesh.o src/SceneObjects/Sphere.o src/SceneObjects/Square.o src/threads/ThreadPool.o -I/usr/local/include/ -I/usr/local/lib/ -I/png -I/jpeg -L/usr/local/lib/libfltk.a -L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lfltk -lfltk_gl -lfltk_images -lfltk_forms -lXext -lX11 -lm -lGL -lGLU -lpng -ljpeg -lz -lXfixes -lpthread -lfontconfig -lXcursor -lXt -ldl /usr/lib/x86_64-linux-gnu/libfltk.so 
src/ui/GraphicalUI.o: In function `GraphicalUI': 
/media/sda6/swagatika/Documents/project2_trace/trace/src/ui/GraphicalUI.cpp:343: undefined reference to `Fl_Menu_Bar::Fl_Menu_Bar(int, int, int, int, char const*)' 
src/ui/GraphicalUI.o: In function `Dialog2::getValue()': 
/media/sda6/swagatika/Documents/project2_trace/trace/src/ui/dialog.h:26: undefined reference to `Fl_Int_Input::Fl_Int_Input(int, int, int, int, char const*)' 
src/ui/debuggingWindow.o: In function `DebuggingWindow': 
/media/sda6/swagatika/Documents/project2_trace/trace/src/ui/debuggingWindow.cxx:216: undefined reference to `Fl_Menu_Bar::Fl_Menu_Bar(int, int, int, int, char const*)' 
collect2: error: ld returned 1 exit status 
make: *** [trace] Error 1 

Любая подсказка, почему возникает ошибка?

Два заголовочных файла присутствуют в /usr/local/include/FL/ и включены в исходные файлы.

/usr/local/include/FL/Fl_Menu_Bar.H /usr/local/include/FL/Fl_Int_Input.H

В случае помогает, я следующая информация о FLTK-конфигурации

$ fltk-config --cflags --libs 
-I/usr/local/include -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT 
/usr/local/lib/libfltk.a 

$ fltk-config --ldflags --use-gl 
-L/usr/local/lib -lfltk_gl -lGLU -lGL -lfltk -lXcursor -lXfixes -lXext -lXft -lfontconfig -lXinerama -lpthread -ldl -lm -lX11 

Если вы хотите, чтобы посмотреть на Makefile:

# 
# Makefile for fltk applications 
# 

# set local paths 
FLTK = 

#INCLUDE = -I$(FLTK) -I$(FLTK)/png -I$(FLTK)/jpeg 
#LIBDIR = -L$(FLTK)/lib 
#LIBDIR = -L/usr/lib/x86_64-linux-gnu/ 
LIBDIR = -L/usr/local/lib/libfltk.a 

INCLUDE = -I/usr/local/include/ -I/usr/local/lib/ -I$(FLTK)/png -I$(FLTK)/jpeg 

#LIBS = -lfltk -lfltk_gl -lXext -lX11 -lm -lGL -lGLU -lpng -ljpeg -lz -ldl -lXfixes -lpthread 
LIBS = -L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lfltk -lfltk_gl -lfltk_images -lfltk_forms -lXext -lX11 -lm -lGL -lGLU -lpng -ljpeg -lz -lXfixes -lpthread -lfontconfig -lXcursor -lXt -ldl 

CFLAGS = -g -fpermissive -std=c++11 

CC = g++ 

.SUFFIXES: .o .cpp .cxx 

.cpp.o: 
    $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $< 

.cxx.o: 
    $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $< 

ALL.O = src/main.o src/getopt.o src/RayTracer.o \ 
    src/ui/CommandLineUI.o src/ui/GraphicalUI.o src/ui/TraceGLWindow.o \ 
    src/ui/debuggingView.o src/ui/glObjects.o src/ui/debuggingWindow.o \ 
    src/ui/ModelerCamera.o \ 
    src/fileio/imageio.o src/fileio/buffer.o \ 
    src/parser/Token.o src/parser/Tokenizer.o \ 
    src/parser/Parser.o src/parser/ParserException.o \ 
    src/scene/camera.o src/scene/light.o \ 
    src/scene/material.o src/scene/ray.o src/scene/scene.o \ 
    src/SceneObjects/Box.o src/SceneObjects/Cone.o \ 
    src/SceneObjects/Cylinder.o src/SceneObjects/trimesh.o \ 
    src/SceneObjects/Sphere.o src/SceneObjects/Square.o src/threads/ThreadPool.o 

trace: $(ALL.O) 
    $(CC) $(CFLAGS) -o [email protected] $(ALL.O) $(INCLUDE) $(LIBDIR) $(LIBS) 

clean: 
    rm -f $(ALL.O) trace 

ответ

0

Она жаловалась на связывании: а не компиляции.

LIBDIR должен быть каталог: не библиотека

LIBDIR = -L/usr/local/lib 
Смежные вопросы