0
我想使用nVIDIA編譯器爲我的GNU編譯器生成一個共享庫來鏈接。一切都很順利,直到運行。以下是詳細信息。謝謝!使用nVIDIA編譯器爲我的GNU編譯器生成共享庫時運行時錯誤鏈接
main.cpp中:
#include <iostream>
using namespace std;
void fcudadriver();
int main()
{
cout<<"Maine "<<endl;
fcudadriver();
return 0;
}
test.cu:
__global__ void fcuda()
{
}
void fcudadriver()
{
fcuda<<<1,1>>>();
}
編譯:
nvcc --compiler-options '-fPIC' -o libtest.so --shared test.cu
g++ main.cpp -L. -ltest
運行:
./a.out
個結果:
./a.out: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory
它的工作原理!謝謝! – 2012-04-06 14:51:55
這與g ++無關。運行時鏈接程序在由/etc/ld.so.conf和環境變量LD_LIBRARY_PATH控制的一組路徑中查找共享庫。這就是Linux上的工作原理。 (有一些關於setuid程序的注意事項。)請參閱man ld.so – Mat 2012-04-06 14:56:04