2011-09-21 4 views
14

-rpath 링커 옵션을 사용하여 .so 검색 경로를 설정하고 싶습니다. [app_path]/../lib을 검색하고 싶습니다. 내 qmake를 .pro 파일이 추가 시도했다 :

QMAKE_LFLAGS += -Wl,-rpath=$ORIGIN/../lib/ 

을하지만 내 프로젝트를 이런 식으로 qmake를 링크 :

g++ -Wl,-rpath=RIGIN/../lib/ -Wl,-O1 -o myoutput main.o [...] 

가 어떻게이 $ORIGIN을 탈출 할 수 있습니까?

QMAKE_RPATHDIR += $ORIGIN/../mylibs 

답변

10

:

+0

흥미 롭습니다. 이것은 새로운 옵션입니까? –

+1

'QMAKE_RPATH' 작업을하는 동안 여기에서 발견했습니다 : [QTBUG-8110] (https://bugreports.qt-project.org/browse/QTBUG-8110). 이 링크에 따르면'QMAKE_RPATH'와'QMAKE_LFLAGS_RPATH'는 더 이상 작동하지 않습니다. 'QMAKE_RPATHDIR'는 적어도 Qt 4.8.4와 Qt 4.8.5에서 작동합니다. – Aurelien

+0

여기에 정의되어 있습니다 : [qmake Variable Reference] (http://doc.qt.digia.com/qt/qmake-variable-reference.html#qmake-rpathdir) – Aurelien

21

나는 here에게 제대로 탈출하는 방법을 발견 DOLLAR = $

QMAKE_LFLAGS + = -Wl, -rpath = $$ {$ 0} $$ {$$ {/}/myLibs

+4

나는 방금 저를 위해 일하는 것들을 얻으려면'-z origin'을 추가해야한다고 언급했습니다. 그래서 모두 QMAKE_LFLAGS + = '-Wl, -rpath, \'\ $$ ORIGIN /../ lib \ ', -z, origin''입니다. –

+0

정답입니다. 나는 QMAKE_RPATHDIR을 작동시키지 못했고 실제로 'QMAKE_RPATHDIR'가 작동하지 않는다는 것을 나타내는 그물에 잡담이있다. –

1

: 당신은 당신이 단순히 .pro 파일에이를 추가 할 수 있습니다 구축하는 동안 $ORIGIN 평가 (제대로)하고 싶다면

QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN/../mylibs\'' 
1

이것은 정말 오래된 질문이지만, 검색을 통해 사람들에게 알려지기 때문에 이전 답변에 설명 된 방법은 더 이상 필요하지 않습니다. 당신이 사용하고있는만큼, 메이크 파일에 자동으로

QMAKE_RPATHDIR += lib 

이 ($ORIGIN 필요 -Wl,-z,origin 포함)에 필요한 항목을 추가합니다 : 현대 Qt는 버전 (내 경우에는 5.9), 당신은 단지이 사용할 수 있도록 상대 디렉토리. 과 같은 것은 그렇지 않지만 lib은 필요한 "origin"항목을 생성한다는 것을 의미합니다. QMAKE_RPATHDIR에 추가하는 상대 디렉토리는 자동으로 $ORIGIN에 상대적으로 만들어집니다.