将.cpp文件链接到同一目录中的.c文件

时间:2016-08-18 15:29:19

标签: c++ c eclipse linker

我是一名初学者,正在使用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*)'

0 个答案:

没有答案