C GNU阿基米德无法建造——未定义的建筑符号,即使它们存在

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

我对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 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编译器之间的兼容性问题有关。

您解决了这个问题吗?我也有同样的问题。