在将C全局变量与C 代码链接起来的麻烦



我正在研究一个使用C源代码来调用C 功能的项目,该函数也链接到C 库。我已经能够允许我的C代码调用C 功能,但是我也希望我的C 函数能够访问C源代码中定义的全局变量。链接C/C 代码.O文件时,我目前会遇到错误。错误消息通过使用这些全局变量和状态"未定义的引用"的每个.O文件。

这不是确切的代码或其他任何内容,而是基本上是一个非常简单的示例。stonstants.h文件也由其他C代码使用。

常数

#ifdef __cplusplus
extern "C" {
#endif
extern const int x;
#ifdef __cplusplus
}
#end if

常数

int x = 5;

mycppcode.cpp

#include "constants.h"
void print_x(int x){
    printf("%d", x);
};

您需要链接所定义该值的.o文件。编译时间,编译器不必担心该值。但是在链接时间,编译器正在尝试在所有.o和链接的库中找到价值。如果找不到,您将获得该错误。

相关内容

最新更新