Была неделя, когда я учился и читал, как использовать свою собственную статическую библиотеку в 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"
и как я могу использовать это, используя только библиотеку без указания пути с -I/home/myFiles/lib
.
Спасибо.