我使用 CCS 命令行编译器进行 PIC 编程。我已经使用和升级它十多年了,我对它很满意。我最近更新到了 Ubuntu 19.04 64 位,现在程序因 Seg Fault 而失败。
我的其他所有 32 位软件似乎都运行良好,CCS 支持人员表示它应该可以在 64 位下运行,但除此之外他们几乎没有提供其他支持。除了那一个答案之外他们甚至没有回复。
有什么方法可以强制程序使用 32-libs 运行?我只是假设这可能是问题所在。
任何帮助将不胜感激。
以下是 ldd 结果:
ldd ccsc.bin
linux-gate.so.1 (0xf7fcb000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7f85000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7f7f000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7d9f000)
/lib/ld-linux.so.2 (0xf7fcc000)
我已将所有这些库都放置在“/lib/i386-linux-gnu/”中,但以下库除外:Linux-gate.so.1'。我尝试sudo apt-get -y 安装 Linux-gate
但没有找到。
好的,所以我了解到 Linux-gate 是一个虚拟库,肯定不是我的问题。所有依赖项似乎都已安装。CCS 不会提供帮助(我猜是因为我是唯一一个拥有 64 位机器的 Linux 用户)任何帮助都将不胜感激。我正在将我的代码转换为 XC8,但这是一个痛苦的过程。
答案1
似乎您缺少 x86 兼容层。要安装它,您需要安装一些依赖项(IIRC 如下):
sudo dpkg --add-architecture i386
sudo apt-get -y install lib32z1 libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
您可能需要安装其他库,但这些可能是最受欢迎的。