我添加了一些庫,共享和靜態,並讓他們工作,以便我可以在桌面應用程序中使用它們。但是,當我嘗試在另一個靜態庫或另一個共享庫中的共享庫中使用靜態庫時,似乎無法工作。 我得到的錯誤無法打開包含文件mylibrary.h:沒有這樣的文件或目錄C++不能在其他庫中使用庫
有沒有辦法解決它?如果不是,什麼是結構項目/圖書館的最佳方式。這似乎是非常有限的是,圖書館不能使用其他庫
這是我的應用程序的.pro在那裏我可以用他的庫
QT += core
QT -= gui
CONFIG += c++11
TARGET = Test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../SharedLib/release/ -lSharedLib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../SharedLib/debug/ -lSharedLib
INCLUDEPATH += $$PWD/../SharedLib
DEPENDPATH += $$PWD/../SharedLib
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../SharedLib_2/release/ -lSharedLib_2
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../SharedLib_2/debug/ -lSharedLib_2
INCLUDEPATH += $$PWD/../SharedLib_2
DEPENDPATH += $$PWD/../SharedLib_2
並應該使用SharedLib_2
SharedLib的的.proQT -= gui
TARGET = SharedLib
TEMPLATE = lib
DEFINES += SHAREDLIB_LIBRARY
SOURCES += sharedlib.cpp
HEADERS += sharedlib.h\
sharedlib_global.h
unix {
target.path = /usr/lib
INSTALLS += target
}
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../SharedLib_2/release/ -lSharedLib_2
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../SharedLib_2/debug/ -lSharedLib_2
INCLUDEPATH += $$PWD/../SharedLib_2
DEPENDPATH += $$PWD/../SharedLib_2
我通過自動添加庫加入他們兩個和線相同,所以,我本來預計這個工作
包括再
應用
#include <QCoreApplication>
#include "sharedlib.h"
#include "sharedlib_2.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
SharedLib sl;
SharedLib_2 sl_2;
return a.exec();
}
sharedLib
#include "sharedlib.h"
#include "sharedlib_2.h" // ERROR HERE
SharedLib::SharedLib()
{
}
線索出現錯誤:您是否正確設置了包含路徑,以便mylibrary.h可以找到? – auburg
我將添加我的.pro – chrise
我使用相同的包含路徑,我使用它的主要應用程序 – chrise