用于编译.cpp文件的Qt .pro文件依赖项

时间:2014-11-14 10:22:01

标签: c++ qt compilation

我正在运行并使用linux终端gcc命令编译我的c ++代码。我想从qt编译并运行代码。我正在努力理解我必须在.pro文件中从console命令转换为qt依赖项的依赖项。用于编译项目的控制台命令如下:

g++ `pkg-config --cflags opencv` -c -g -MMD -MP -MF main.o.d -o main.o main.cpp
gcc -c -g `pkg-config --cflags opencv` -MMD -MP -MF svmlight/svm_learn.o.d -o svmlight/svm_learn.o svmlight/svm_learn.c
gcc -c -g `pkg-config --cflags opencv` -MMD -MP -MF svmlight/svm_hideo.o.d -o svmlight/svm_hideo.o svmlight/svm_hideo.c
gcc -c -g `pkg-config --cflags opencv` -MMD -MP -MF svmlight/svm_common.o.d -o svmlight/svm_common.o svmlight/svm_common.c
g++ `pkg-config --cflags opencv` -o trainhog main.o svmlight/svm_learn.o svmlight/svm_hideo.o svmlight/svm_common.o `pkg-config --libs opencv`

qt中创建的.pro文件如下:

TEMPLATE = app
CONFIG += console
CONFIG -= qt

SOURCES += main.cpp

如何将这些依赖项从console命令添加到qt .pro文件?我尝试使用以下* .pro文件编译我的项目:

TEMPLATE = app
CONFIG += console
CONFIG -= qt

SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/
INCLUDEPATH += /usr/local/include/opencv
INCLUDEPATH += /usr/local/include/opencv2
INCLUDEPATH += path/svmlight/

LIBS += -L/usr/local/lib
LIBS += -lopencv_core
//I add all necessary opencv libs

但是我得到了几个未定义的引用,用于' my_malloc' '冗长' '免费模特' ...  main.cpp:-1:错误:未定义对`my_malloc'

的引用
  main.o:-1: In function `SVMlight::~SVMlight()':
 (.text._ZN8SVMlightD2Ev[_ZN8SVMlightD5Ev]+0x15):-1: error: undefined reference to `kernel_cache_cleanup'
 (.text._ZN8SVMlightD2Ev[_ZN8SVMlightD5Ev]+0x29):-1: error: undefined reference to `free_model'
 (.text._ZN8SVMlightD2Ev[_ZN8SVMlightD5Ev]+0x4e):-1: error: undefined reference to `free_example'   
 (.text._ZN8SVMlightD0Ev[_ZN8SVMlightD5Ev]+0x15):-1: error: undefined reference to `kernel_cache_cleanup'
 (.text._ZN8SVMlightD0Ev[_ZN8SVMlightD5Ev]+0x29):-1: error: undefined reference to `free_model'
 (.text._ZN8SVMlightD0Ev[_ZN8SVMlightD5Ev]+0x4e):-1: error: undefined reference to `free_example'
 (.text._ZN8SVMlightD0Ev[_ZN8SVMlightD5Ev]+0x4e):-1: error: undefined reference to `free_example'

1 个答案:

答案 0 :(得分:1)

您可以找到*.pro个文件here的可用命令列表。

出于您的目的,您应该查看INCLUDEPATHLIBS以及某些FLAG个关键字。

您获得的错误似乎属于svmlight Lib。根据您在亲文件中显示的内容,您只包含属于LIBS的{​​{1}},而不是opencv

svmlight