0

gcc(7.2.0) 和 pgi(18.4) 编译器出现错误。我正在编译一个科学应用程序(在 fortran 中),它有一些依赖项。这些依赖项是使用 -fPIC 标志编译的。在编译主应用程序时,我收到一个错误“relocation truncated to fit”。当我添加标志 -mcmodel=medium(pgi) 时,编译成功。但是由于某些原因我不愿意添加这个标志。此外,当我使用 -fPIC 编译主应用程序时,我得到链接器错误和添加 --no-relax 标志的建议。添加相同的内容后,我仍然收到重定位错误。有没有什么方法可以在没有 -mcmodel=medium 标志的情况下编译?

编辑: 另外,当使用 gnu 编译器时,无论我使用什么 mcmodel,我都会收到重定位错误。这可能与旧链接器有关吗?因为我认为,应用程序及其依赖项是使用 64 位库编译的,而链接器是我假设使用 32 位库运行的。作为在执行 /ld-linux.so --list 时使用 pgi 成功编译的原因,我收到一条错误消息,指出无法映射到零填充页面。在运行可执行文件时,我收到一条消息,如 Killed。

4

0 回答 0