我想在gtkmm / glade / c ++上使用一些opencv类。包含任何opencv代码后,它工作正常,但如果我将opencv添加到这样的libs:LIBS ='pkg-config ... opencv --libs'应用程序停止工作。在main的第一行(Gnome :: Gda :: init();)它崩溃并出现分段错误
生成文件
LD = g++
LIBS = `pkg-config gtkmm-2.4 glibmm-2.4 libgdamm-4.0 --libs`
CPPFLAGS = `pkg-config gtkmm-2.4 glibmm-2.4 libgdamm-4.0 --cflags`
OBJS = main.o TreeviewImages.o MainWindow.o FormDialog.o DBUtil.o
all: build
build: $(OBJS)
$(LD) $(LIBS) $(OBJS) -o cish
main.o: main.cpp
g++ $(CPPFLAGS) -c main.cpp
MainWindow.o: MainWindow.cpp MainWindow.h DBUtil.h FormDialog.h
g++ $(CPPFLAGS) -c MainWindow.cpp
TreeviewImages.o: TreeviewImages.cpp TreeviewImages.h
g++ $(CPPFLAGS) -c TreeviewImages.cpp
FormDialog.o: FormDialog.cpp FormDialog.h DBUtil.h
g++ $(CPPFLAGS) -c FormDialog.cpp
DBUtil.o: DBUtil.cpp DBUtil.h
g++ $(CPPFLAGS) -c DBUtil.cpp
clean:
rm -f cish $(OBJS)
任何领导/提示/帮助将不胜感激!
答案 0 :(得分:2)
链接时放置库会产生很大的不同。
如果您有一个库libexample,请使用:
g++ -lexample myprog2.o
如果myprog2引用它们,将无法加载库函数。
改为使用:
g++ myprog2.o -lexample
也就是说,在引用目标文件之后添加$(LIBS)
。