有一个星期我正在学习和阅读如何在C ++中使用我自己的静态库,这让我发疯。我正在使用Ubuntu,我在/ home / myFiles / lib中有一个类我想构建我的库:
//MyClass.h
//---------------------------------------------
#ifndef MYCLASS_H_
#define MYCLASS_H_
class MyClass {
public:
int a;
MyClass();
virtual ~MyClass();
};
#endif
并且
//MyClass.cpp
//------------------------------------------
#include "MyClass.h"
MyClass::MyClass() {
a = 3;
}
MyClass::~MyClass() {
}
//------------------------------------------
在/ home / myFiles / main中我想使用该库的测试文件:
// test.cpp
//-------------------------------------------------
#include <iostream>
using namespace std;
#include "MyClass.h"
int main() {
MyClass c = MyClass;
cout << "Hello World!!!" << c.a << endl;
return 0;
}
//----------------------------------------------
使用Ubuntu控制台我输入:
在lib文件夹中:g++ -c MyClass.cpp
ar rsc libTesting.a MyClass.o
在测试文件夹中:g++ -c test.cpp -lTesting -L/home/myFiles/lib
然后返回:test.cpp: error: MyClass.h: No such file or directory
如果我写:
g++ -o test.cpp -lTesting -L/home/myFiles/lib
删除我的文件test.cpp
我知道有很多关于此的信息,但我不明白为什么它不能识别#include "MyClass.h"
我怎么能仅使用库而不包含{{1}的路径}。
谢谢。
答案 0 :(得分:0)
你没有指明包含路径,所以gnu报告错误。
尝试为包含路径添加-I,或将.h文件复制到源目录。