【问题标题】:How to make the dynamic link possible如何使动态链接成为可能
【发布时间】:2014-05-23 18:10:49
【问题描述】:

我正在使用 ssh 在服务器中进行一些计算。但我对 unix 完全陌生。我有一个 .so 文件需要链接到程序。但是,当我运行程序时,它会报告以下错误

MatMult.so: cannot open shared object file: No such file or directory
Link error: 'MatMult' cannot load dll
Link error: 'MatMult' undefined function

我想我需要更改 LD_LIBRARY_PATH 以在路径上创建 .so 文件。但我不知道怎么写。原行是

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OXHOME/bin64:$niqlowHOME/include:$OXDEV

我的问题是如何修改这一行以使链接成为可能。是否有任何资源可供我阅读以了解该行的作用。

【问题讨论】:

  • 删除了 ddl 标签; dll 可能是相关的(尽管它适用于 Microsoft)或共享库。这里没有足够的信息。 LD_LIBRARY_PATH 的设置对编译器链接操作没有影响。您可以指定链接时选项(-Wl,rpath=/some/where 或类似的选项)来标识共享库在运行时的位置,或者您可以使用LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/where 添加包含共享库的目录,可选前缀为export
  • 我的意思是 dll ,而不是 ddl

标签: c unix dll


【解决方案1】:

如果你正在编译一些需要链接到上述'.so'文件的程序,那么你可以使用:

gcc -L[.so 文件的路径] -o 输出 -l[库名]

如果您正在运行需要 .so 库的程序,只需将库文件复制到 /usr/lib 目录即可。

否则,请详细说明您的查询。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多