1

我正在开发一个工具,它可以多次调用 g++,以便编译和执行原始 C++ 程序的不同版本。或多或少,此调用是在循环内进行的(它不是真正的“循环”,但调用是在作为迭代算法的一部分的函数内进行的)。

对于算法的短期执行,一切都很顺利,所有 g++ 调用都正确完成(我准备好执行二进制文件)。然而,算法执行的时间越长,工具就越有可能崩溃。

此崩溃是由于 g++ 调用的后续崩溃,而不是返回预期的编译二进制文件,而是返回以下错误:

Compiling test_oclopts_23_14_6_6000.cpp...
g++ -O3 -L/opt/AMDAPP/lib -lOpenCL -I/opt/AMDAPP/include test_oclopts_23_14_6_6000.cpp -o test_oclopts_23_14_6_6000
/usr/bin/ld: cannot find /usr/lib/i386-linux-gnu/libc_nonshared.a
/usr/bin/ld: cannot find /lib/i386-linux-gnu/ld-linux.so.2
collect2: ld returned 1 exit status

我已经用谷歌搜索了一些关于此错误消息的信息,但我不明白它们如何应用于我的问题:据称缺少的库确实已很好地安装在系统中(以前的 g++ 调用正常)。

任何想法?此外,如果您知道在 C++ 程序中编译 C++ 源代码而不是使用 system() 的更好方法,我接受建议,:)

非常感谢你,

乔治。

4

0 回答 0