lazarus 3.0/fpc 3.3.1在windows交叉编译龙芯应用的方法

发布时间 2024-01-08 14:51:24作者: 秋·风

用fpcupdeluxe创建的龙芯交叉编译环境libc.so版本比UOS/loongxin等的版本高,导致编译后的应用不能运行的问题,按网友禁卫军提供的方法(Lazarus编译Loongarch64不能运行的情况 - 禁卫军 - 博客园 (cnblogs.com)lazaurs自建库文件系统 - 禁卫军 - 博客园 (cnblogs.com)),从loongxin系统提取相关文件后,交叉编译出来的应用可正常运行。

步骤:
1、将cross\lib\loongarch64-linux的文件删除
2、从loongxin系统的:
\usr\lib\loongarch64-linux-gun
提取相关文件拷贝到cross\lib\loongarch64-linux

3、修改libc.so
打开libc.so文件
将文件修改为以下内容,保存后退出:

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-loongarch)
GROUP ( libc.so.6 libc_nonshared.a  AS_NEEDED ( ld.so.1 ) )

为方便大家,我将提取并修改后的loongarch64-linux上传到:

链接:https://pan.baidu.com/s/14dZeS5ppVVGxrLjYpQWddA?pwd=4bk8
提取码:4bk8

需要的就下载吧。
4、重新编译应用就可以。
5、如果编译的应用在龙芯系统不能运行,在lazarus下Project-->Options-)compiler options->custom options添加:

-FL/lib64/ld.so.1

 

这个方法在统信和loongxin测试通过。
在此感谢 禁卫军 提供的方法。