我在Xcode中创建了一个命令行项目。该项目包含“client.h”,“client.c”和“snap7.h”。 “snap7.h”具有名为“libsnap7.so”的动态库的所有定义。
“client.h”包含“snap7.h”,我可以构建一个可执行文件。
但是当我想在其他标题中使用“snap7.h”时,例如“bitfunctions.h”,则链接器会显示数百个错误,如:
duplicate symbol _errLibXXX in:
../x86_64/client.o
../x86_64/bitfunctions.o
“snap7.h”文件中的重复符号将是例如:
const int errLibInvalidParam = -1;
const int errLibInvalidObject = -2;
“snap7.h”包含在“bitfunctions.h”中,如下所示:
#ifndef S7SnapClient_bitfunctions_h
#define S7SnapClient_bitfunctions_h
#include "snap7.h"
...
#endif
当我在linux机器上链接此代码时,也存在重复的符号错误,但我可以使用makefile中的链接器选项“-z muldefs”来抑制它们。是否有类似的功能,我可以在Xcode中使用,或任何其他建议如何解决这个问题? 提前谢谢。