0

我正在维护一个库,其中包含需要链接到第 3 方可执行文件的编译对象。有时可执行文件已针对 Solaris 编译,有时作为 32 位 Linux 应用程序,有时是 64 位 Linux 应用程序。我想做的是将一个“路径”传递给库,然后让应用程序自动选择库的正确风格。如果它只在 linux 上工作就可以了,这样我就可以根据操作系统来定义路径。

这种特殊情况适用于我想链接到 Verilog 模拟器的 PLI/VPI 函数库。

我现在拥有的是

root/path/${MYPLILIB_VER}/rootname/${MYPLIFLAVOR}/plilib.so

味道是其中之一

solaris linux linux64

风味取决于操作系统,如果是 Linux,如果在 64 位平台上运行,它还取决于我正在运行的程序的 32/64 位版本。我正在寻找更好的方法..

4

3 回答 3

1

使用“uname”给出的系统信息自动设置路径?
'uname -s' 为您提供内核名称(例如 Linux / SunOS)
'uname -i' 将为您提供体系结构(例如 x86 / x86_64)

于 2008-10-03T18:29:09.260 回答
1

嗯..它看起来像 ELF 可能会做我想要的.. 现在一些好的应用笔记..

在这篇关于制作 DSO 的论文的最后一页上,有一些关于 $PLATFORM 和 $LIB 期望的信息。似乎在 linux 上我应该能够使用 lib lib64 目录结构来保存这两个对象。

关闭以了解更多信息。

迷失方向的共享对象

于 2008-10-03T18:42:57.110 回答
0

我不知道您使用的是哪个模拟器,但您可以尝试将路径放入LD_LIBRARY_PATH环境变量中。我相信 Cadence 和 Mentor 模拟器都会出现在那里。我不确定是否支持 VCS。您的模拟器的用户手册将包含详细信息。

于 2009-06-17T06:54:42.010 回答