【问题标题】:library path for Tcl extension in CC 中 Tcl 扩展的库路径
【发布时间】:2014-08-25 23:28:59
【问题描述】:

我使用Tcl_CreateObjCommand 在 C 中构建了一个名为 libA.so 的 Tcl 扩展,C 代码从名为 libext.so 的外部 C 库调用该函数,我应该将 libext.so 放在哪里,以便 tcl 可以找到并在加载 libA.so 时加载它

【问题讨论】:

  • 你从哪里得到 libext.so?它是您在其他地方建造或获得的吗?
  • 这是我建立的一个库
  • 嗯。似乎没有放置 libext.so 的好地方(除了像 /usr/lib 这样的标准位置)。如果你不能,要么(1)把它放在 LD_LIBRARY_PATH 中的某个地方(不是一个理想的解决方案),要么(2)把它放在一个已知的地方,并在它加载 libA.so 之前有 Tcl 包代码dlopen 它(你可以使用dlopen tcl 扩展)。

标签: c tcl tk


【解决方案1】:

使用包安装程序

如果你有一个包管理器,你应该用它安装 tcl/tk。

sudo apt-get install tk

或者您可能还想要tk-dev(有时称为tk-devel):

sudo apt-get install tk tk-dev

手动安装

  • 可以将 so 手动放入 /usr/local(库在 /usr/local/lib/ 并包含文件在 /usr/local/include/),但请记住避免将它们安装在/usr 如果您确实拥有包装系统。
  • 也可以选择将它们放在您的项目目录下,但您必须帮助dynamic linker 找到它们(使用 LD_LIBRARY_PATH 或 ld.so.conf)。此外,您还必须更新项目的包含路径和库路径。

【讨论】:

    猜你喜欢
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多