设置库以支持链接到多个平台的预编译软件、编译选项的最佳方法是什么
我正在维护一个库,其中包含需要链接到的编译对象 第三方可执行文件。 有时可执行文件是针对 Solaris 编译的,有时是 32 位 Linux 应用程序,有时是 64 位 Linux 应用程序。 我想做的是将一个“路径”传递给库,然后让应用程序自动选择库的正确风格。 如果它只在Linux上运行就可以了,这样我就可以根据操作系统定义路径。
这个特殊情况是针对我想要链接到 verilog 模拟器的 PLI/VPI 函数库。
我现在所拥有的是
root/path/${MYPLILIB_VER}/rootname/${MYPLIFLAVOR}/plilib.so
风味是其中之一
solaris linux linux64
风味取决于操作系统,如果Linux,如果在64位平台上运行,它还取决于我运行的程序的哪个版本32/64位。 我正在寻找更好的方法..
I'm maintaining a library that contains compiled objects that need to be linked into
a 3rd party executable. sometimes the executable has been compiled for Solaris, sometimes as a 32bit Linux Application, sometimes its a 64bit linux application.
What I'd love to do is pass one "path" to the library, and have the application then automatically pick up the right flavor of the library.
It'd be OK if it only worked on linux, so that I could just define the path in terms of the OS.
this particular case is for a library of PLI/VPI functions I want to link into a verilog simulator.
What I have now is
root/path/${MYPLILIB_VER}/rootname/${MYPLIFLAVOR}/plilib.so
where flavor is one of
solaris linux linux64
The flavor depends on the os, and if Linux, if running on a 64bit platform, it also depends on which version 32/64bit of the program I am running.
I'm looking for a better way..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用“uname”给出的系统信息自动设置路径?
'uname -s' 为您提供内核名称(例如 Linux / SunOS)
'uname -i' 将为您提供架构(例如 x86 / x86_64)
Use the system info given from "uname" to set the paths automatically?
'uname -s' gives you the kernel name (eg Linux / SunOS)
'uname -i' will give you the architecture (eg x86 / x86_64)
嗯..看起来 ELF 可能会做我想做的事..现在为了一些好处
应用笔记..
在本文的最后一页关于制作 DSO 是一些信息
关于 $PLATFORM 和 $LIB 的期望..
似乎在 Linux 上我应该能够使用 lib lib64 目录结构
握住这两个物体……
了解更多信息。
为迷失方向的人提供共享对象
Hm.. its looking like ELF might do what I want.. now for some good
application notes..
and on the LAST page of this paper on making DSO's is some info
on the $PLATFORM and $LIB expectations..
seems like on linux I should be able to use the lib lib64 directory structure
to hold the two objects..
off to learn more.
shared objects for the disoriented
我不知道您使用的是哪个模拟器,但您可以尝试将路径放入
LD_LIBRARY_PATH
环境变量中。 我相信 Cadence 和 Mentor 模拟器都会在那里查看。 我不确定 VCS 的情况。 您的模拟器的用户手册将提供详细信息。I don't know which simulator you are using but you might try putting the path in the
LD_LIBRARY_PATH
environment variable. I believe both Cadence and Mentor simulators will look in there. I'm not sure abut VCS. Your simulator's user manual will have details.