다시 또 다른 문제가 있습니다. 이번에는 .dll, .qrc (QT Resource) 파일이 포함 된 공유 라이브러리가 있는데 문제는 라이브러리의 리소스 중 하나에 액세스하려고 할 때 작동하지 않는다는 것입니다. 구현 시도 :공유 라이브러리 QT 리소스
Q_INIT_RESOURCE(resourcefilename)
여전히 작동하지 않습니다. ("qInitResources_resourcefilename()"을 찾을 수 없음)
다시 또 다른 문제가 있습니다. 이번에는 .dll, .qrc (QT Resource) 파일이 포함 된 공유 라이브러리가 있는데 문제는 라이브러리의 리소스 중 하나에 액세스하려고 할 때 작동하지 않는다는 것입니다. 구현 시도 :공유 라이브러리 QT 리소스
Q_INIT_RESOURCE(resourcefilename)
여전히 작동하지 않습니다. ("qInitResources_resourcefilename()"을 찾을 수 없음)
Nevermind. 해결책을 찾았습니다. qInitResources_name()을 (를) 찾을 수 없습니다. 그래서 공유 라이브러리 안에서 함수를 만들었습니다.
int RmiLib::startResources(){
extern int qInitResources_rmi();
return qInitResources_rmi();
}
그런 다음 메인 App에서 함수를 호출했습니다. 그것은 효과가 있었다. 당신이 그냥 함수 qInitResources_resourcefilename 찾을 수없는이 같은 문제로 실행
.dll 인이 말 때문에 Windows를 사용한다고 가정하기 위하여려고하고있다
. 이 함수는 라이브러리에 .qrc 파일이 있으면 공유 라이브러리에 실제로 존재합니다 (맵 파일 확인). 문제는이 함수를 내 보내지 않았기 때문에 링커가 주 앱을 연결하는 동안 해당 함수를 찾지 못한다는 것입니다. qInitResources_resourcefilename 함수를 다음과 같이 공유 라이브러리의 익스포트 테이블에 추가했습니다.
는LIBRARY
EXPORTS
qInitResources_resourcefilename
이
QMAKE_LFLAGS += /DEF:\"$${PWD}\\export.def\"
OTHER_FILES += \
export.def
귀하의 솔루션이 문제를 해결 작동 파일 .PRO 당신의 공유 라이브러리에 다음을 추가 export.def 공유 라이브러리에 새 파일을 추가 RmiLib 때문에 :: startResources는 내보내기 테이블에 포함됩니다.
Windows 7, MSVC 2010, Qt 5.2.0
감사합니다! 이게 도움이됩니다! – alanwsx