C GNU阿基米德无法建造——未定义的建筑符号,即使它们存在
我对C相当不习惯,对编译更大的项目也完全不熟悉,我在尝试构建时遇到了问题 我尝试了C GNU阿基米德无法建造——未定义的建筑符号,即使它们存在,c,compilation,gnu,C,Compilation,Gnu,我对C相当不习惯,对编译更大的项目也完全不熟悉,我在尝试构建时遇到了问题 我尝试了/configure和make方法,并按照文档建议,在src/目录中简单地执行gcc-lm-archimedes.c-o-archimedes。两者都会给出类似的错误消息: Undefined symbols for architecture x86_64: "_MM2", referenced from: _ParabMEP2D in ccwORAXj.o _Hole_MEP2D in
/configure
和make
方法,并按照文档建议,在src/
目录中简单地执行gcc-lm-archimedes.c-o-archimedes
。两者都会给出类似的错误消息:
Undefined symbols for architecture x86_64:
"_MM2", referenced from:
_ParabMEP2D in ccwORAXj.o
_Hole_MEP2D in ccwORAXj.o
"_creation", referenced from:
_EMC in ccwORAXj.o
"_rnd", referenced from:
_MCdevice_config in ccwORAXj.o
_scat in ccwORAXj.o
_EMC in ccwORAXj.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
MM2
、rnd
和creation
是src/
中许多.h文件之一所包含的函数。类似问题的每个解决方案都存在将多个编译的.c文件链接在一起的问题,但在本例中,只有一个.c文件。
如果相关,则错误中的.o文件的名称会随着每次尝试而更改。
我曾尝试在macOS(带有clang和gcc,后者通过自制安装)和FedoraLinux下构建它,结果类似
我做错了什么?我希望这是一个合适的地方,但我不知道还能去哪里。我很感谢你的建议
提前谢谢,祝你有愉快的一天 在/archimedes-2.0.1/src/文件夹中,检查所有头文件(.h),并将每个“inline”更改为“static inline” 这个补丁是Alexander Vogt发现的。他的原始帖子链接如下:
这个问题与旧版本和新版本的c编译器之间的兼容性问题有关。您解决了这个问题吗?我也有同样的问题。