0

有没有办法将 PGI 编译器二进制文件链接到现有的 GNU 二进制文件?当我尝试链接时,出现以下错误:

oacc.c.o:(.init+0x8): undefined reference to `__pgio_ini'
collect2: ld returned 1 exit status

细节:

我用 gcc 和 g++ 编译了一些文件。Cmain函数包含在这些文件中。现在我应该在项目中添加一个 OpenACC 函数,该函数必须由 PGI C Compiler ( pgcc) 编译。编译后,出现上述链接错误(两者pgCCg++链接器的错误相同)。

也许我需要将 OpenACC 函数集成到一个虚拟库中并将其包含/链接到项目中。但我不知道该怎么做。

不幸的是,无法使用 PGI 编译器编译整个项目,因为某些功能依赖于 GNU 编译器。

提前致谢。

4

1 回答 1

1

较新版本的基于 GCC 的 GNU 工具链要求以符号相互依赖的顺序指定要链接的文件(目标文件以及静态和动态库)。因此,您必须将外部库的链接器标志作为最后一个参数:

gcc -o prog prog.o -lfoo

是正确的,而

gcc -o prog -lfoo prog.o

将导致链接器错误。

于 2012-10-21T12:52:41.713 回答