簡體   English   中英

Makefile和庫壞依賴?

[英]Makefile and library bad dependencies?

我想在gtkmm / glade / c ++上使用一些opencv類。 包含任何opencv代碼后它工作得很好,但如果我將opencv添加到這樣的libs:LIBS ='pkg-config ... opencv --libs'應用程序停止工作。 在main的第一行(Gnome :: Gda :: init();)中,它崩潰並出現Segmentation Fault

Makefile文件

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)

任何領導/提示/幫助將不勝感激!

鏈接時將庫放在哪里會有很大的不同。

如果您有一個庫libexample,請使用:

 g++ -lexample myprog2.o

如果myprog2引用它們將無法加載庫函數。

而是使用:

g++ myprog2.o -lexample 

也就是說,在引用目標文件后添加$(LIBS)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM