首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想在QT中使用狐猴库。

我想在QT中使用狐猴库。
EN

Stack Overflow用户
提问于 2014-08-20 13:21:02
回答 1查看 230关注 0票数 0

我想在QT中使用狐猴库,但我需要一些帮助。我在那里有说明:使用说明

makeFile.app包含:

代码语言:javascript
复制
    # compiling C++ code
%.o: %.cpp
    $(CXX) $(CXXFLAGS) -o $@ -c $<
%: %.o
    $(CXX) $(CXXFLAGS) -o $@ $< $(CPPLDFLAGS)

prefix = /usr/local
exec_prefix = ${prefix}
INC = ${prefix}/include
#antlr is already set up properly for include path

LIBPATH = ${exec_prefix}/lib
LIB = lemur
CXX = g++
CFLAGS = -DPACKAGE_NAME=\"Lemur\" -DPACKAGE_TARNAME=\"lemur\" -DPACKAGE_VERSION=\"4.12\" -DPACKAGE_STRING=\"Lemur\ 4.12\" -DPACKAGE_BUGREPORT=\"project@lemurproject.org\" -DHAVE_LIBM=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBZ=1 -DHAVE_NAMESPACES= -DISNAN_IN_NAMESPACE_STD= -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FSEEKO=1 -DHAVE_MKSTEMP=1 -DHAVE_MKSTEMPS=1 -DHAVE_EXT_ATOMICITY_H=1 -DP_NEEDS_GNU_CXX_NAMESPACE=1 -DNDEBUG=1 -g -O3  -I$(INC)
CXXFLAGS  = -DPACKAGE_NAME=\"Lemur\" -DPACKAGE_TARNAME=\"lemur\" -DPACKAGE_VERSION=\"4.12\" -DPACKAGE_STRING=\"Lemur\ 4.12\" -DPACKAGE_BUGREPORT=\"project@lemurproject.org\" -DHAVE_LIBM=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBZ=1 -DHAVE_NAMESPACES= -DISNAN_IN_NAMESPACE_STD= -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FSEEKO=1 -DHAVE_MKSTEMP=1 -DHAVE_MKSTEMPS=1 -DHAVE_EXT_ATOMICITY_H=1 -DP_NEEDS_GNU_CXX_NAMESPACE=1 -DNDEBUG=1 -g -O3 -I$(INC)


CPPLDFLAGS  =  -L$(LIBPATH) -l$(LIB) -lz -lpthread -lm 
## specify your object files here
OBJS = main.cpp
## specify your program here
PROG = Qt4

all: $(PROG)

$(PROG): $(OBJS)
    $(CXX) $(CXXFLAGS) -o $@ $^ $(CPPLDFLAGS)

clean:
    rm $(PROG) $(OBJS)

最后,我编写了QT4作为我的程序,main.cpp作为我的对象,但是它不起作用。当我运行make -f MakeFile.app时,我的终端出现了错误

main.cpp:1:35:致命错误: QtCore/QCoreApplication :没有关于此类型的文件或文件夹

如果使用使用QT的build按钮进行编译,则会得到以下错误:

代码语言:javascript
复制
    In file included from /usr/local/include/indri/ref_ptr.hpp:21:0,
                 from /usr/local/include/indri/Repository.hpp:26,
                 from /usr/local/include/LemurIndriIndex.hpp:25,
                 from ../CBIRTest/main.cpp:9:
/usr/local/include/indri/atomic.hpp: In function 'void indri::atomic::increment(indri::atomic::value_type&)':
/usr/local/include/indri/atomic.hpp:51:33: error: '__atomic_add' was not declared in this scope
/usr/local/include/indri/atomic.hpp:51:33: note: suggested alternative:
/usr/include/c++/4.6/ext/atomicity.h:51:3: note:   '__gnu_cxx::__atomic_add'
/usr/local/include/indri/atomic.hpp: In function 'void indri::atomic::decrement(indri::atomic::value_type&)':
/usr/local/include/indri/atomic.hpp:55:35: error: '__atomic_add' was not declared in this scope
/usr/local/include/indri/atomic.hpp:55:35: note: suggested alternative:
/usr/include/c++/4.6/ext/atomicity.h:51:3: note:   '__gnu_cxx::__atomic_add'

在我的QT项目中,我只有一个.pro文件,main.cpp在我的.pro文件中,用于库和路径

代码语言:javascript
复制
INCLUDEPATH += I/usr/local/include/ \

LIBS += -L/usr/local/lib \

main.cpp

代码语言:javascript
复制
    #include <QtCore/QCoreApplication>
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/nonfree/features2d.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "lemur-compat.hpp"
#include "LemurIndriIndex.hpp"
#include "lemur-platform.h"



int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    return a.exec();
}

有人能帮我吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-20 16:09:27

就在包含指令#include "lemur-blah blah.h"添加之前

代码语言:javascript
复制
using namespace __gnu_cxx;

这是由于预处理指令P_NEEDS_GNU_CXX_NAMESPACE造成的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25405868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档