元のC++プログラムのさまざまなバージョンをコンパイルして実行するために、g++を何度か呼び出すツールを開発しています。多かれ少なかれ、この呼び出しはループ内で行われます(実際の「ループ」ではありませんが、呼び出しは反復アルゴリズムの一部である関数内で行われます)。
アルゴリズムを短時間実行すると、すべてがスムーズに進み、すべての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 ++呼び出しはOKでした)。
何か案が?さらに、system()を使用する代わりにC++プログラム内でC++ソースコードをコンパイルするより良い方法を知っているなら、私は提案を受け入れています、:)
よろしくお願いします、
ホルヘ。