2013-10-25 124 views
0

我编写了使用tbb库的C++项目。这个库链接到我的项目,我在项目组设定的路径到库中的文件:它的工作在我的电脑上将共享库链接到群集上的C++项目

Include directories: usr/tbb/include

Libraries: usr/lib/libtbb.so, usr/lib/libtbbmalloc.so, usr/lib/libtbbmalloc_proxy.so

,但是当我尝试在集群(通过使用qsub)运行它,我已经出现库路径未找到的错误。所以我的问题是:当我在集群上执行程序时,如何指定共享库的路径? 只见讨论here想跑这种方式

-L/home/dinar/tbb/lib/ia32 -Wl,-rpath,/home/dinar/tbb/lib/ia32 -ltbb ./program 

,但没有奏效。

+1

的'-L','-Wl'和'-l'标志*连接*标志,即您在链接程序时使用的标志。 –

+0

谢谢你的回应,Joachim。我所做的是:我将tbb软件包保存在集群中的用户目录中,并尝试将这些库链接到我的程序。但它不适合我。可能我的可执行应用程序仍然保留我指定用于构建项目的旧库路径(我PC上的路径)。 –

回答

1

您可能想要设置的环境变量为LD_LIBRARY_PATH

$ LD_LIBRARY_PATH=/home/dinar/tbb/lib/ia32 ./program 
+0

我也试过,我得到的错误:./程序:加载共享库时出错:libtbb.so.2:无法打开共享目标文件:没有这样的文件或目录 –

+0

@DinarAbdullin而在'/ home/dinar/tbb/lib/ia32'你有一个名为'libtbb.so.2'的文​​件?你有没有*任何类似的文件名(可能更多的'.so.2',只有'.so'扩展名)?如果是最后一个,则从'libtbb.so.2.x'(或'libtbb.so')到'libtbb.so.2'建立一个符号链接。 –

+0

Joachim,位于/ home/dinar/tbb/lib/ia32我有libtbb.so和libtbb.so.2文件 –