2015-11-09 3 views
2

Я пытаюсь добавить библиотеку dlib в свой проект Qt5. Я построил dlib с gcc 4.9.3, используя CMake без NO_GUI_SUPPORT (т. Е. С графическим интерфейсом) и без ISO_CPP_ONLY. Я собрал его в общую библиотеку с CMAKE_INSTALL_PREFIX = my_qt_project_dir/dlib, установили и включили его в свой проект:Включая dlib в проект Qt

# DLIB 
INCLUDEPATH += $$PWD/dlib/include/ 
LIBS += -L$$PWD/dlib/lib/ 
LIBS += -ldlib 

Я в том числе это заголовки в коде:

#include <dlib/image_processing.h> 
#include <dlib/gui_widgets.h> 
#include <dlib/image_io.h> 
#include <dlib/dir_nav.h> 
#include <dlib/opencv.h> 

но во время компиляции получить this errors

некоторые из них:

/dlib/include/dlib/image_processing/../matrix/matrix_la.h:64:45: error: macro "sign" passed 2 arguments, but takes just 1 
/dlib/include/dlib/image_processing/../matrix/matrix_math_functions.h:83:27: error: expected unqualified-id before 'const' 
/dlib/include/dlib/image_processing/../matrix/matrix_la.h:1034:9: error: 'matrix' has not been declared 

Я использую C Сделайте 3.3.1, QtCreator 3.4.2, Qt 5.4.2, gcc 4.9.3 работает на gentoo 4.0.9.

Как с этим бороться?

+1

Кто-то # определил слово «знак», и он топает по коду. Выясните, какой код создает знак #define и #include его после других заголовков. –

+0

@DavisKing Я просмотрел с символами ++ с QtCreator и нашли только это 3 определения, связанное с проектом: 1) 'именами dlib' ->' имена impl' -> 'встроенного типа знак (сопзИте тип & Вал)' 2) 'namespace dlib' ->' namespace nric' -> 'inline T sign (const T & a, const T & b)' 3) 'DLIB_DEFINE_FUNCTION_M (op_sign, sign, impl :: sign, 6);' Эти определения всегда находятся под пространствами имен, поэтому с ними не должно быть проблем. Больше похоже, что компилятор не может решить, какое определение использовать. Я попытался указать пространства имен в вызовах, но без каких-либо результатов ... – ElDorado

+0

#define не находится в коде dlib. –

ответ

3

Кто-то # определил слово «знак», и он топает по коду. Выясните, какой код создает знак #define и #include его после других заголовков.

Смежные вопросы