我正在研究一个利用C源代码调用也链接到C ++库的C ++函数的项目。我已经能够允许我的C代码调用C ++函数,但是我也希望我的C ++函数能够访问C源代码中定义的全局变量。链接C / C ++代码.o文件时,当前出现错误。错误消息会通过每个使用这些全局变量的.o文件,并显示“未定义的引用..”。
这不是确切的代码或其他内容,但基本上是我尝试执行的示例的非常简单的示例。 constants.h文件也将被其他C代码使用。
constants.h
#ifdef __cplusplus
extern "C" {
#endif
extern const int x;
#ifdef __cplusplus
}
#end if
constants.c
int x = 5;
mycppcode.cpp
#include "constants.h"
void print_x(int x){
printf("%d", x);
};
答案 0 :(得分:0)
您需要在定义了该值的位置链接.o文件。编译时,编译器不会担心该值。但是在链接时,编译器试图在所有.o和链接库中查找值。如果找不到,则会出现该错误。