惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
F
Full Disclosure
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Register - Security
The Register - Security
G
Google Developers Blog
C
Check Point Blog
GbyAI
GbyAI
A
About on SuperTechFans
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
T
Tor Project blog
AWS News Blog
AWS News Blog
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
aimingoo的专栏
aimingoo的专栏
U
Unit 42
Y
Y Combinator Blog
P
Privacy International News Feed
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
S
Schneier on Security
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
P
Proofpoint News Feed
C
Cisco Blogs
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
罗磊的独立博客
Cloudbric
Cloudbric
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News: Ask HN
Hacker News: Ask HN
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog

博客园 - 秋·风

fpc aarch64-win64版编译应用时遇到一个奇怪的bug 在windows 11 on arm64系统编译lazarus出错的处理方法 修复TDBMemo只读不能使用Ctrl+C复制文字的Bug freepascal打补丁后已支持windows 11 on arm64(lazarus aarch64 windows版也可以运行了) 查看libc.so.6的版本号 Lazarus移动版启动程序 fpc 3.2.2交叉编译i386-linux链接出错 lazarus鸿蒙开发13:使用鸿蒙原生API画图--lazarus侧关键代码 lazarus鸿蒙开发12:使用鸿蒙原生API画图--鸿蒙侧关键代码 lazarus鸿蒙开发11:使用鸿蒙原生接口画图 lazarus鸿蒙开发10:lazarus一键编译、打包助手 lazarus鸿蒙开发9:使用命令行编译DevEco Studio应用 lazarus鸿蒙开发8:在DevEco Studio的日志窗口显示日志信息 lazarus鸿蒙开发7:在 Windows 上为 OpenHarmony (LoongArch64) 编译 Qt 5.15.12 SDK 指南 lazarus鸿蒙开发6:鸿蒙project配置 lazarus鸿蒙开发5:编译ohos_hap_project lazarus鸿蒙开发4:编译OHOS_QT_Lazarus lazarus鸿蒙开发3:编译libLazarusOHOS_Wrapper.so lazarus鸿蒙开发2:编译鸿蒙版本Qt5pas lazarus鸿蒙开发1:编译QT 5.12.12 鸿蒙版 fpc/lazarus for x86_64/aarch64鸿蒙版(绿色版 2026.06.03更新) fastreport报表编辑器在aarch64等非x86_64 CPU第一次打开慢的解决方案 linux/windows双系统可用的打包程序 使用FPC自带的纯 Pascal 实现的 Zlib 替代品——paszlib QFLazarus使用说明 忽略lazarus console in/output窗显示的转义序列 取消树莓派的系统双击桌面图标时出现弹窗的选择提示 银河麒麟v11安装lazarus的方法 【小技巧】lazarus的应用设置某个form不在任务栏显示(linux) 用lazarus封装了linux的rsync SimpleXML-for-lazarus fastreport在windows11(lazarus)报表设计时出现的问题 用lazarus编写的deb打包工具 龙芯deepin 25系统使用旧世界软件的方法 SimpleJSON for lazarus 中文转全拼音和首字母 lazarus扩展IDE宏的方法 调整lazarus gtk2编辑控件背景颜色 fpc/lazarus可用的宏 Lazarus IDE宏列表 【原创控件】PopupMenu和MainMenu自绘单元 【原创控件】PopupMenu自绘 【原创控件】lazarus自定义mainmenu菜单栏(2026-02-26 增加菜单项图标尺寸参数) cudaText存在段落长度超过一定字数时会出现字符重叠的问题 lazarus编写的程序在Ubuntu任务栏/快捷栏不显示设定的图标 lazarus实现拖放文件 在uos使用lazarus调试时遇到的问题 【原创控件】lazarus IDE界面备份和恢复插件(2026-02-07增加恢复默认布局及官方已集成到lazarus) lazarus for arm32编译so链接出错
编译fpc遇到的怪事(2026-05-20更新)
秋·风 · 2026-05-13 · via 博客园 - 秋·风

前两天海南的朋友在windows 11用我的工具编译fpc时出错:

Error: Identifier not found "FpcBaseRecordType"
systemh.inc(584,49) Fatal: Cannot find system type "FPCENUMVALUEOBTAINABLE". Check if you use the correct run time library.

为排除工具引起的问题,使用命令行进行编译也同样出错。

G:\QFLazarus\fpcbootstrap\x86_64-win64\make.exe FPC=G:\QFLazarus\fpcbootstrap\x86_64-win64\ppcx64.exe FPCDIR=G:\QFLazarus\fpcsrc PREFIX=G:\QFLazarus\fpc INSTALL_PREFIX=G:\QFLazarus\fpc INSTALL_SOURCEDIR=G:\QFLazarus\fpcsrc INSTALL_BASEDIR=G:\QFLazarus\fpc INSTALL_UNITDIR=G:\QFLazarus\fpc\units\x86_64-win64 INSTALL_BINDIR=G:\QFLazarus\fpc\bin\x86_64-win64 INSTALL_LIBDIR=G:\QFLazarus\fpc\lib INSTALL_SHAREDDIR=G:\QFLazarus\fpc\share install

image

查找FpcBaseRecordType和FPCENUMVALUEOBTAINABLE所在单元,发现和java/jvm有关:

7b53c88e810ebd527e2905c297f66a03

11beb205e3123ffbc4c5d396f9a7deb1

 编译出错时,检查fpcsrc/compiler生成的ppc.exe有点奇怪-->"for jvm":

image

按正常的编译,ppc理应是当前CPU(x86_64)才对。
怀疑与系统的环境变量有关,经查找系统变量,真有JVM这个变量,为验证,将这个JVM环境变量删除并重启电脑,再次用命令行编译,这次编译成功了。
虽然删除jvm后能编译,但这样就破坏了原有的环境变量。
继续寻找理想的解决方案:
在fpcsrc/compiler/Makefile里找到:

image

删除ifdef JVM这3行,编译也成功。
当然,不能为了编译去修改Makefile,但从这里发现PPC_TARGET,能不能在命令行加上PPC_TARGET=x86_64呢?
立即行动,使用的命令行和前面的一样,只增加PPC_TARGET=x86_64这个参数:

G:\QFLazarus\fpcbootstrap\x86_64-win64\make.exe FPC=G:\QFLazarus\fpcbootstrap\x86_64-win64\ppcx64.exe FPCDIR=G:\QFLazarus\fpcsrc PREFIX=G:\QFLazarus\fpc INSTALL_PREFIX=G:\QFLazarus\fpc INSTALL_SOURCEDIR=G:\QFLazarus\fpcsrc INSTALL_BASEDIR=G:\QFLazarus\fpc INSTALL_UNITDIR=G:\QFLazarus\fpc\units\x86_64-win64 INSTALL_BINDIR=G:\QFLazarus\fpc\bin\x86_64-win64 INSTALL_LIBDIR=G:\QFLazarus\fpc\lib INSTALL_SHAREDDIR=G:\QFLazarus\fpc\share PPC_TARGET=x86_64 install

2026-05-20 更新:用JVM= 替代PPC_TARGET,注意JVM=后面是空格,不要填CPU

G:\QFLazarus\fpcbootstrap\x86_64-win64\make.exe FPC=G:\QFLazarus\fpcbootstrap\x86_64-win64\ppcx64.exe FPCDIR=G:\QFLazarus\fpcsrc PREFIX=G:\QFLazarus\fpc INSTALL_PREFIX=G:\QFLazarus\fpc INSTALL_SOURCEDIR=G:\QFLazarus\fpcsrc INSTALL_BASEDIR=G:\QFLazarus\fpc INSTALL_UNITDIR=G:\QFLazarus\fpc\units\x86_64-win64 INSTALL_BINDIR=G:\QFLazarus\fpc\bin\x86_64-win64 INSTALL_LIBDIR=G:\QFLazarus\fpc\lib INSTALL_SHAREDDIR=G:\QFLazarus\fpc\share JVM= install

这次编译成功了:

image

经过两天的排查终于解决了这个问题。

特别说明:这次是和海南的朋友一起排查的。