我正在运行并使用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'
答案 0 :(得分:1)
您可以找到*.pro
个文件here的可用命令列表。
出于您的目的,您应该查看INCLUDEPATH
,LIBS
以及某些FLAG
个关键字。
您获得的错误似乎属于svmlight
Lib。根据您在亲文件中显示的内容,您只包含属于LIBS
的{{1}},而不是opencv
svmlight