我在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编译好......
我非常感谢你的帮助...
答案 0 :(得分:1)
您需要通过
在主文件中包含log_access :: test的定义#include "log_access.h"
假设您有一个名为log_access的头文件(您不应该包含.cpp文件;使用它们来实现头文件中声明的方法。请参阅here了解原因)。