2011-01-08 5 views
3

Qt Creator (2.1 RC)를 사용하여 Linux에서 Qt 응용 프로그램을 개발 중입니다. 저는 2 개의 프로젝트를 생성하고 마법사를 사용하여 라이브러리 프로젝트를 애플리케이션 프로젝트에 추가했습니다. 나는 그것을 실행할 때, 나는 오류가 나타납니다 :Qt Creator를 사용하여 Unix 시스템에서 Qt 응용 프로그램 개발

/home/jakepetroules/silverlock/silverlock-build-desktop/desktop/silverlock: error while loading shared libraries: libsilverlocklib.so.1: cannot open shared object file: No such file or directory

내가 Qt는 창조주가 실행 제대로 환경을 설정합니다 있도록 설정할 수있는 qmake에 변수가 있습니까? 빌드를 테스트 할 수 있도록 런처 스크립트를 사용하여 모든 파일을 다른 디렉토리에 복사해야하는 것은 상당히 성가신 일입니다. Windows의 경우 완벽하게 작동합니다. Qt Creator는 응용 프로그램을 실행할 때 DLL이 포함 된 디렉토리를 PATH에 자동으로 추가합니다 (Explorer에서 DLL을 실행하면 DLL을 찾을 수 없다는 메시지가 나타납니다). Mac OS X은 모든 경우에 install_name_tool을 실행해야하는 상황이 더욱 악화됩니다 ...

Qt Creator의 실행 버튼에서 모든 것이 올바르게 작동하도록 어떻게 qmake 파일을 설정할 수 있습니까? 이 능력 없이는 디버깅하기가 어렵습니다.

답변

5

예, 창조주가에 관하여 : RPATH에

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib 

unix:{ 
    QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/ 
    QMAKE_LFLAGS_RPATH= 
} 

정보가 여기에 있습니다 : 나는 클라이언트 응용 프로그램의 .PRO 파일에 다음 행을 추가하여 그것을 해결했습니다 앱을 실행하는 데 필요한 환경을 설정할 수있는 섹션입니다. 창조주 2.0.0이에

을하여 액세스 : 프로젝트 -> 대상은 -> (대상) -> 실행이 -

(프로젝트를 연 후)> 실행 환경은 그런 다음 추가하거나 제거 할 수 있습니다 LD_LIBRARY_PATH을 포함하여 원하는 환경 변수 예를 들어 제가 대체 할 수 있다면 확실하지 않은 한 가지가 있습니다. 해당 변수의 값으로 빌드 경로를 지정하면 하드 코드를 사용하여 LD_LIBRARY_PATH에 입력 할 필요가 없습니다.

또 다른 옵션은 필요한 모든 변수를 설정하는 작은 셸 스크립트를 소스 트리에 추가하고 "사용자 지정 실행 파일"실행 구성을 추가하여 해당 스크립트를 실행하는 것입니다. 동일한 화면을 통해 액세스 할 수 있습니다. 그냥이를 사용하여

6

QTCreator를 사용하여 qt 응용 프로그램을 실행하는 것과 비슷한 문제가 발생했습니다. 이 도움이 rpath

희망

+0

동적 링커를 무시하기 때문에 RPATH를 잘못 사용하지 않습니까? –

+0

그래, 맞아, rpath를 사용하는 것은 때로 악의/나쁜 습관으로 여겨지지만,이 경우에는 문제에 대한 다른 적합한 해결책을 찾지 못했다. 그래서 나는 그것을 사용하거나 실행 프로그램 스크립트를 사용하여 나의 물건을 실행하는 것 이외에 선택의 여지가 없었던 것 같아요. –

+0

'QMAKE_RPATHDIR + =/path/blub'이 나를 위해 일했습니다. – Adam

1

: 그것은 너무 내 문제를 sloved 것

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib 
unix:{ 
    QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/ 
} 

.

관련 문제