Eclipse C ++将共享库添加到主项目中

时间:2015-04-21 21:25:09

标签: c++ eclipse shared-libraries

我在Ubuntu 14.02上使用Eclipse 3.8.1,这是第一次有2个项目。我来自c#world,因此可能是Eclipse错误或C ++概念错误。

testmonitor:一个示例C ++项目。代码:

#include <iostream>

using namespace std;

int main() {

     cout << "Test program" << endl;
     log_access::test();

     return 0;
}

log_access是一个共享库:log_access.cpp

#include <iostream>

namespace log_access {

    void test()
    {
        std::cout << "It worked!!!" << std::endl;
    }

}

我正在尝试构建一个共享库并将其链接到主项目。我去了Project -> Properties -> Project References并点击了我想参考的项目(共享库)。

没有工作......

然后我去了Project -> Properties -> C/C++ General -> Paths and Symbols -> References Tab并点击了我要引用的项目(共享库)。

没有工作......

目前我收到以下错误:

Invoking: GCC C++ Compiler
g++ -std:c++0x -I"home/projects/dev/sample/workspace/log_access" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/testproject.d" -MT"src/testmonitor.d" -o "src/testmonitor.o" "../src/testmonitor.cpp"
../src/testmonitor.cpp: In function 'int main()':
../src/testmonitor.cpp:34.3: error: 'log_access' has not been declared
   log_access:test();
   ^
make: *** [src/testmonitor.o] Error 1

13:56:39 Build Finished (took 1s.246ms)

Obs:log_access编译好......

我非常感谢你的帮助...

1 个答案:

答案 0 :(得分:1)

您需要通过

在主文件中包含log_access :: test的定义
#include "log_access.h"

假设您有一个名为log_access的头文件(您不应该包含.cpp文件;使用它们来实现头文件中声明的方法。请参阅here了解原因)。