共有ライブラリと静的ライブラリの両方を追加してデスクトップアプリケーションで使用できるようにしました。しかし、別の静的ライブラリや別の共有ライブラリの共有ライブラリでスタティックライブラリを使用しようとすると、動作しないように見えます。 エラーが表示されます。ファイルmylibrary.hを開くことができません。そのようなファイルまたはディレクトリはありません。C++は他のライブラリではライブラリを使用できません
回避方法はありますか?そうでない場合、プロジェクト/ライブラリを構築する最良の方法は何ですか?これは非常にそれはカントの使用他のライブラリをライブラリことを制限しているようだ
これは私が彼ライブラリ
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の.PROを使用することができます私のアプリケーションの.PROですQT -= 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