默认情况下阻止编译器使用系统库

时间:2016-11-28 21:00:04

标签: c++ qt g++

我有一个使用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
}

0 个答案:

没有答案
相关问题