공유 라이브러리와 정적 라이브러리를 추가하여 데스크톱 애플리케이션에서 사용할 수 있도록 작동 시켰습니다. 그러나 다른 정적 라이브러리 나 작동하지 않는 다른 공유 라이브러리의 공유 라이브러리에서 정적 라이브러리를 사용하려고 할 때. 오류가 발생합니다. 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