-1

我正在尝试将 gjh 求解器(用 C 编写)编译成 Windows 中的可执行文件。它在 netlib上可用

我下载了 c 文件,并在 Windows 的命令提示符下通过 WinGW 使用 gcc 编译器。尝试直接编译 gjh.c 文件给了我一个错误,上面写着:

gjh.c:33:21: fatal error: getstub.h: No such file or directory
 #include "getstub.h"
compilation terminated.

我假设编译gjh.c需要依赖getstub.h

getstub.h不是唯一需要的依赖项,还有其他依赖项,即:arith.hasl.hfuncadd.hstdio1.h. 所有这些文件都可以在我找到的同一个链接上找到getstub.h。但是,arith.h0stdio1.h0可以代替arith.hand stdio1.h

这些文件是一样的吗?我尝试将 .h0 文件重命名为 .h 并尝试编译gjh.c,但出现此错误:

collect2.exe:错误:ld 返回 1 退出状态

两个文件一样吗?如果没有,我有什么办法可以将 gjh 求解器成功编译成 .exe?

4

1 回答 1

0

如果这是编译中唯一的问题,请尝试使用-Igcc 中的开关:

gcc -I/my/path/to/include/files -o gjh gjh.c

-I 将提示切换到 gcc 在哪里可以找到您的#include文件。

我不确定stdio1.h. 我认为您的重命名方法是可以的,但是对外部函数的引用,例如Sprintf. 您需要与定义它的库链接。如果您知道它的来源,请使用 gcc 中的-Land-l开关:

gcc -I/my/path/to/include/files -L/my/path/to/library -lnameoflibrary \
    -o gjh gjh.c
于 2018-02-27T22:25:29.913 回答