我有一个我创建的类文件(头和cpp),我想在我的main.cpp文件中使用它。我生成了一个qmake项目文件(从我的main.cpp的当前目录),并添加了头文件和cpp:
HEADERS += $$quote(/home/myusername/projects/src/myclass.h)
SOURCES += $$quote(/home/myusername/projects/src/myclass.cpp)
SOURCES += main.cpp当我运行makefile时,它似乎可以工作,直到它到达我的main.cpp中包含头文件的部分,然后它说:致命错误,没有这样的文件或目录
我觉得我犯了一个非常基本的错误,但我似乎找不到答案。
发布于 2011-02-09 15:26:32
首先,在项目文件中使用绝对路径绝对不是一个好主意。
如果该类是项目的一部分,但位于另一个目录中,请使用#include "relative/path/myclass.h"语法在项目文件和#include指令中使用相对路径。
如果该类不是项目的一部分,那么您应该将其编译为库,然后使用带有以下选项的qmake:
qmake INCLUDEPATH+=/path/to/the/header LIBS+=-L/path/to/the/library并将库名称添加到项目文件中:
LIBS += -llibraryname然后,您可以将您的类包含为#include <myclass.h>,请注意<>语法。
请注意,特定于工作站的内容将转到命令行,但与工作站无关的库名将转到项目文件。如果您想提供一些合理的默认位置,您可以使用以下技巧:
unix { # default path for the Unix systems
isEmpty(MYLIB_PATH): MYLIB_PATH = /usr/local
}
INCLUDEPATH += $$MYLIB_PATH/include
LIBS += -L$$MYLIB_PATH/lib然后,如果需要,您仍然可以从命令行覆盖该路径:
qmake MYLIB_PATH=/home/myusername/mylib发布于 2011-02-11 02:03:23
我最终在@Sergey Tachenov的帮助下弄明白了这一点。我使用"../“将其从绝对路径更改为相对路径。
HEADERS += ../src/classfile.h
SOURCES += ../src/classfile.cpp
SOURCES += main.cpp我还修改了main.cpp包含文件,以便它是
#include "../src/classfile.h"在进行了这些更改之后,它被正确编译和运行。
谢谢!
https://stackoverflow.com/questions/4941648
复制相似问题