2010-11-30 5 views
0

내 프로젝트에 문제가 있습니다. Qt Creator에서 개발 중이며 .lib 파일을 프로젝트에 추가해야합니다. 그래서, 내 .pro에서이 라인을 썼다 :.lib 파일을 동적으로 포함시키는 방법은 무엇입니까?

LIBS += "C:\My_Path\My_Project\lib\file.lib" 

이것은 잘 동작하고있다. 내 유일한 문제는 전체 경로를 .lib 파일에 작성해야한다는 것입니다. 그룹 프로젝트이므로 매번이 파일의 경로를 변경하지 않고도 다른 컴퓨터에서 컴파일 할 수 있어야합니다.

LIBS += -L"lib/" -l"file.lib" 

또는

LIBS += "lib\file.lib" 

또는

LIBS += "file.lib" 

가 (루트에있는 lib 디렉토리 파일을 넣고에서 프로젝트에 추가 :

내가 좋아하는 많은 구문을 시도 Qt 생성자)

N 그 중 하나가 작동합니다/

나는이 하나 같이 QResource 파일의 lib 디렉토리의 파일 만 구문을 추가하려고 :

LIBS += ":/lib/file.lib" 

을 .PRO 파일에서 작동하지 않는 것 .. .

지금

도움말 난 당신이 데프에 의해 잘 작동해야 상대 경로를 사용하여 라이브러리에 연결할 생각하여 시도에서

답변

1

좋아, 나는 해결책을 발견 :

에있는 lib/디렉토리가 같은 디렉토리에 배치 될 수있다을 그 메이크 (진짜가 아닌 .PRO).
build-desktop/디렉토리에 lib/디렉토리를 복사했기 때문에 모든 것이 상대 경로를 사용하여 정상적으로 작동하고 있습니다 :)

0

을 :)하십시오 아이디어 :(에서 실행하고 ault. 그것이 작동하지 않는 경우

LIBS += -L$$relative/directory/path -llibname 

, 당신은 여러 INCLUDEPATH 설정을 시도 할 수 있습니다 :

이 시도해보십시오. :/

+0

그래서 LIBS + = -L -l을 어떻게 사용합니까? $$ 친척을 어떻게 사용해야합니까? –

+0

$$이 없어도 작동해야하기 때문에 모든 것이 이상하지만, 시도해보아야합니다. – Palmik

+0

INCLUDEPATH는 라이브러리에는 포함되지 않으며 포함 된 파일에만 사용됩니다. –

1

당신은

LIBS += -Llib -lfile

또는

LIBS += -L./lib -lfile 시도 했습니까?

전체 경로를 사용하지 않는 경우 라이브러리 이름에 .lib을 추가하지 말고 따옴표는 사용하지 마십시오. 경로에 공백이 있으면 (또는 방금 안전하기를 원한다면)

here과 같이 유닉스 스타일 경로는 일반적으로 전체 경로를 제공해야하는 Windows에서도 작동합니다. qmake가 당신을 위해 그것을 채울 것입니다.

나는 W에 문제없이 내 프로젝트 중 하나에서

LIBS += $$quote(-L../../lib) -lphraseBox

LIBS += $$quote(-L../../lib) phraseBox.lib

LIBS += ../../lib/phraseBox.lib

변환 indows. 프로젝트 파일을 어딘가에 게시하거나 실제 오류 메시지를 게시하여이를 좁힐 수 있습니다.

+0

아직 내 문제가 해결되지 않았습니다. 나는 여전히 "file.lib"을 찾을 수 없다. 시도한 궁극적 인 줄은 다음과 같습니다. LIBS + = -L $$ quote (./ lib) -l $$ quote (portaudio_x86). 링크 한 문서에서 .lib 확장자를 추가 할 수 있습니다. 또한 파일 이름의 끝에있는 숫자는 문제를 일으킬 수 있다고합니다. 나는 그들을 제거하려고했지만 그것도 동일합니다. 도와 주셔서 고마워요 :) –

+0

LIBS + = -L $$ 따옴표 (C : \ My_Path \ My_Project \ lib) -l $$ quote (portaudio_x86) 같은 오류가 발생하는 경우 : Windows에서 -L 및 -l 옵션을 사용할 수 있습니까? –

+0

실수로 $$ 인용문 (-LC : \ My_Path \ My_Project \ lib)을 사용한다고합니다. 내 대답을 다른 예제로 업데이트하겠다. –