我有一个使用SQL调用的Qt项目。在Windows上,它使用系统库C:\Program Files (x86)\Windows Kits\8.1\Include\um
并且工作正常。
但是,在Linux(Fedora 20发行版)下,有两个可用的库。 / usr / includes中的sqlite和/ usr / include / libiodbc中的libiodbc。我想强迫QT /编译器使用libiodbc。
有没有办法阻止包含sqlite标头?或者强制用户将所需的标题包含在#include
目前,没有关于任何标题的#include,我试图包含libiodbc,但它仍在尝试使用sqlite
编辑:我找到了-nostdinc ++,但是如果我使用它,我找不到实际包含的标题,例如#include <regex>
EDIT2:有问题的标题是sqltypes.h和sqlext.h
我的.pro文件
QT -= gui
TARGET = Internal
TEMPLATE = lib
DEFINES += INTERNAL_LIBRARY
CONFIG += c++11
include( ../LSoftware.pri )
SOURCES += \
InDbHandle.cpp \
InDbConnection.cpp \
InDbStatement.cpp \
InGenius.cpp
HEADERS += \
InDefs.h \
InDbHandle.h \
InDbConnection.h \
InDbStatement.h \
InGenius.h
LIBS += -L$$OUT_PWD/$$DESTDIR -lLTech
INCLUDEPATH += $$PWD/../LTech
INCLUDEPATH += $$PWD/../Common
unix {
target.path = /usr/lib
INSTALLS += target
}
和LSoftware.pri
DEFINES *= QT_USE_QSTRINGBUILDER
# Supposed to be there by default, but just to be safe.
CONFIG += precompile_header warn_on
CONFIG(release, debug|release) {
DESTDIR = ../Output/Release$$QMAKE_TARGET.arch
OBJECTS_DIR = Release$$QMAKE_TARGET.arch
}
CONFIG(debug, debug|release) {
DESTDIR = ../Output/Debug$$QMAKE_TARGET.arch
OBJECTS_DIR = Debug$$QMAKE_TARGET.arch
}
MOC_DIR = $$OBJECTS_DIR
RCC_DIR = $$OBJECTS_DIR
# Not documented but seems to work...
PRECOMPILED_DIR = $$OBJECTS_DIR
PRECOMPILED_HEADER = StdAfx.h
LTP_PRODUCTION {
DEFINES += LTP_PRODUCTION
}