【问题标题】:Issue with lua51 c-shared librarylua51 c-shared 库的问题
【发布时间】:2013-06-11 18:05:16
【问题描述】:

我正在尝试编译一个依赖于 liblua51.so 的共享库 (so) 的简单示例程序。我的源文件是 example.c,这是我用来编译它的命令(它是用 C 编写的)

cc -Wall -fPIC -ldl -o a.out -I./ste-linux/ste-interface-files/c/ -L./ste-linux/ste-shared-libraries/ example.c -lm -llua51 -lste -lm -ldl

我收到以下错误:

./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sinh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `ceil'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `atan2'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `tanh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `cosh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `fmod'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `acos'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sin'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `atan'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `asin'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `exp'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `tan'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `cos'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `log'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `pow'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `log10'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sqrt'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `floor'

我在 stackoverflow 上阅读了一堆其他线程说添加 -lm 标志将解决此问题,但无论我将 -L 和 -lm -ldl 放在命令中的哪个位置,这些未定义的引用都不会消失。

我正在尝试在 ubuntu 12.04 LTS 上编译这个库

请帮忙

【问题讨论】:

  • 您构建liblua 的方式可能有问题。可以试试用 Ubuntu 提供的版本,看看是否还有问题?
  • 我觉得我做不到,因为我需要的共享库是针对这个特定版本构建的,有什么工具可以用来调试这类问题吗?
  • 你可以编写一个只使用 Lua 的简单程序。根据您的版本编译它,然后根据系统版本编译它,并查看行为是否存在差异。以后再担心你的共享库,一次调试一个问题。

标签: c gcc lua shared-libraries ubuntu-12.04


【解决方案1】:

问题是我使用的共享库是用不同版本的 GCC 构建的。在我从 Ubuntu 11.04(从 12.04 LTS)降级后,它得到了解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多