2011-02-09 6 views
1

필자는 main.cpp 파일에서 사용하고자하는 클래스 파일 (헤더 및 cpp)을 가지고 있습니다. 나는 (내 MAIN.CPP의 현재 디렉토리)를 qmake를 프로젝트 파일을 생성와 헤더와 cpp에 추가 : 나는 메이크 파일을 실행할 때Qmake 프로젝트 파일

HEADERS += $$quote(/home/myusername/projects/src/myclass.h) 
SOURCES += $$quote(/home/myusername/projects/src/myclass.cpp) 
SOURCES += main.cpp 

, 그것의 일부에 도달 할 때까지 작동하는 것 같다 내 main.cpp 헤더 파일을 포함하고 다음과 같이 말합니다 : 치명적인 오류, 해당 파일 또는 디렉토리가 없습니다.

정말 기본적인 실수를 저지르는 것처럼 느껴지지만 나는 그것을 파악하지 못하는 것 같습니다.

+0

왜 견적을 사용합니까? – Shinnok

+0

필자는 경로에 공백이있어 qt 예제가 공백을 고려하는 가장 좋은 방법이라고 제안했습니다. 그들은 공간에 "\"를 사용하는 것이 가치가 있다고 말했다. – shawalli

+0

거기에는 공백이 없습니다. 그리고 나는 두 번 보았다. – TonyK

답변

4

먼저 프로젝트 파일에서 절대 경로를 사용하는 것은 나쁜 생각입니다.

해당 클래스가 프로젝트의 일부이지만 다른 디렉토리에있는 경우 #include "relative/path/myclass.h" 구문을 사용하여 프로젝트 파일과 #include 지시문의 상대 경로를 사용하십시오.

클래스는 다음 다음과 같은 옵션이 qmake를 사용 후, 라이브러리로 컴파일해야한다 프로젝트의 일부가 아닌 경우 :

qmake INCLUDEPATH+=/path/to/the/header LIBS+=-L/path/to/the/library 

을 그리고 프로젝트 파일에 라이브러리 이름을 추가 :

LIBS += -llibraryname 

클래스를 #include <myclass.h>으로 포함 할 수 있으며, <> 구문에 유의하십시오.

워크 스테이션 특정 사항은 명령 줄로 이동하지만 워크 스테이션 독립 라이브러리 이름은 프로젝트 파일로 이동합니다.

qmake MYLIB_PATH=/home/myusername/mylib 
0

내가 종료 : 당신이 원한다면, 당신은 여전히 ​​명령 줄에서 경로를 재정의 할 수 있습니다, 그리고

unix { # default path for the Unix systems 
    isEmpty(MYLIB_PATH): MYLIB_PATH = /usr/local 
} 
INCLUDEPATH += $$MYLIB_PATH/include 
LIBS += -L$$MYLIB_PATH/lib 

: 당신이 어떤 재치있는 기본 위치를 제공하려면, 다음과 같은 트릭을 사용할 수 있습니다 @ Sergey Tachenov의 도움으로 그것을 알아 냈다. "../"를 사용하여 절대 경로에서 상대 경로로 변경했습니다. 는 이러한 변경 한 후에

#include "../src/classfile.h" 

이었다 그래서 나는 또한 MAIN.CPP을 수정

HEADERS += ../src/classfile.h 
SOURCES += ../src/classfile.cpp 
SOURCES += main.cpp 

파일을 포함, 그것은 컴파일하고 제대로 실행.

감사합니다.

+2

@ Sergey의 대답이 도움이 되었기 때문에 그것을 받아 들여야한다. –

관련 문제