我是一名初学者,正在使用Eclipse从事C语言的软件项目。 我们在项目目录中有许多头文件和源文件(在Eclipse工作区中)。其中大多数是.c文件,但有些是.cpp。
尝试在.cpp文件中使用.c文件中定义的函数时遇到问题。通常添加“#include filename.h”行允许使用filename.c中定义的函数,其中这两个文件与当前文件位于同一文件夹中。但是,这一次,当前文件是.cpp,Eclipse抛出“Unidentified reference”错误(我使用的是extern“C”块)。 我从类似的Q& S中了解到这是一个链接器问题,但没有一个涉及所有文件都在同一个文件夹中的简单情况。
非常感谢任何帮助。
代码:
// SPFeatureExtract.cpp
#include <cstdlib>
#include <cstdio>
extern "C" {
#include "SPConfig.h"
}
foo() {
...
numOfImages = spConfigGetNumOfImages(config, msg); // *Unidentified reference error
}
// SPConfig.c
int spConfigGetNumOfImages(const SPConfig config, SP_CONFIG_MSG* msg) {
[implementation]
}
// SPConfig.h
int spConfigGetNumOfImages(const SPConfig config, SP_CONFIG_MSG* msg);
错误讯息:
E:\SoftProj\WorkSpace\Final\Debug/../SPFeatureExtract.cpp:58: undefined reference to `spConfigGetNumOfImages(sp_config_t*, sp_config_msg_t*)'