我有两个共享一个extern变量的库。
在libA中,我在标头中声明了这样的变量:

extern int Gbl;


然后在源代码中再次将其定义为:

int Gbl;


接下来,我设置Gbl = 1;

在libB中,我包含libA的头文件。还有printf Gbl,期望在这里得到1。

尽管不幸的是,由于出现错误,我什至无法编译它:

undefined symbol '_Gbl' referenced in ....


有人告诉我这是链接错误,但是我不确定从这里开始该怎么做

最佳答案

您需要编译包含libA的libB。这是通过在编译行中添加-llibA来完成的。如果没有正确设置库选项,则需要添加-lpath_to_library

10-07 20:59