静态链接 libtcod

Posted

技术标签:

【中文标题】静态链接 libtcod【英文标题】:Statically linking libtcod 【发布时间】:2014-07-30 14:25:59 【问题描述】:

我正在尝试将libtcod 静态链接到我的 C++ 项目,但没有成功。我收到许多链接错误,包括:

./tuto:加载共享库时出错:libtcodxx.so.1:无法打开共享对象文件:没有这样的文件或目录

有人对那个库有过类似的问题吗?

【问题讨论】:

【参考方案1】:

当前的 libtcod (1.6.0) 发行版中提供了动态库。 可以动态链接 libtcod,但需要创建符号链接:

cd /var/lib/libtcod ln -s libtcod.so libtcod.so.1 ln -s libtcodxx.so libtcodxx.so.1

使用以下命令编译:

g++ src/*.cpp -o tuto -I/var/lib/libtcod/include -L/var/lib/libtcod -ltcod -ltcodxx -Wl,-rpath=/var/lib/libtcod -Wall

【讨论】:

【参考方案2】:

链接到库时使用哪些标志?您是否使用了-static 标志,是否指定了-ltcod?如果没有,请将-static -ltcod 添加到命令行末尾。 或者你可以 force 告诉 gcc 链接到静态构建的库: gcc %YOUR_OTHER_FLAGS_ANDFILES% -l:libtcod.a -L%PATH_TO_TCOD_STATIC_BUILDED_FILE%

【讨论】:

我使用了以下内容:g++ src/*.cpp -o tuto -I/var/lib/libtcod/include -L/var/lib/libtcod -ltcod -ltcodxx -Wl,-rpath =。 -墙 - 静态 我已经克隆了 libtcod 并为 32 位 Linux 编译了它。位于 /var/lib/libtcod 试试这个:g++ src/*.cpp -o tuto -I/var/lib/libtcod/include -L/var/lib/libtcod -l:/var/lib/libtcod.a -l:/var/lib/libtcodxx.a -Wl,-rpath=. -Wall

以上是关于静态链接 libtcod的主要内容,如果未能解决你的问题,请参考以下文章

opencv静态链接库有啥用

如何静态链接到 libstdc++.喜欢升级的GCC的朋友快来看看

静态链接与动态链接

静态链接与动态链接

静态链接与动态链接

Makefile 链接静态库