使用g ++创建和使用静态库

时间:2011-09-20 09:19:34

标签: static g++

有一个星期我正在学习和阅读如何在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}的路径}。

谢谢。

1 个答案:

答案 0 :(得分:0)

你没有指明包含路径,所以gnu报告错误。

尝试为包含路径添加-I,或将.h文件复制到源目录。