2016-10-03 3 views
0

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

실마리가 잘못되었습니다. mylibrary.h를 찾을 수 있도록 포함 경로를 올바르게 설정 했습니까? – auburg

+0

나는 내 .pro를 추가 할 것이다 – chrise

+0

내가 작동하는 주 앱에 사용하는 것과 동일한 경로를 사용한다. – chrise

답변

1

귀하의 INCLUDEPATH 확인을 보이는 응용 프로그램

재, 그래서 아마 문제는 기존의 메이크입니다. 업데이트 된 .pro 파일에 대해 올바른 Makefile을 생성하려면 qmake을 실행해야합니다.

QT Creator에서 Build -> Run qmake으로 이동하십시오.

+1

각 프로젝트마다 qmake를 별도로 실행해야한다는 것을 알지 못했다. 나는 하나 하나씩 모두 달려서 일했다. 고마워 – chrise

관련 문제