Создание и использование статической библиотеки с g ++ - PullRequest
0 голосов
/ 20 сентября 2011

Была неделя, когда я учился и читал, как использовать свою собственную статическую библиотеку в 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.

Спасибо.

1 Ответ

0 голосов
/ 20 сентября 2011

вы не указали путь включения, поэтому GNU сообщит об ошибке.

попробуйте добавить -I для вашего пути включения или скопируйте файл .h в исходный каталог.

...