Windows下编译项目 ckcore ckfilesystem
该项目是用来生成iso镜像文件的,类似于UltraISO,好处就是开源滴,
我为什么要跟它们打交道,说来也简单:我们一开始用UltraISO给我们的操作系统发行版制作启动光盘,但是发现这样做好的光盘头部总是不能被我们的biso(UEFI BISO)识别,但是因为系统的启动过程是把若干文件镜像加载到内存,然后从biso中获取控制权,我们要解决的就是如何识别这几个文件,我的前任们提出了一个比较简单的方法,那就是放弃从光盘信息头中提取文件的思路,直接在制作光盘时把文件的起始地址(用一个叫逻辑扇区地址(LBA)的东西来表示)以及偏移写入光盘的指定位置(这个位置可以保证不会破坏光盘数据,比如,是规范中约定预留部分),于是我们每次制作光盘的流程如下:首先用UltraISO制作原始版本,并查看相应文件的LBA以及长度,然后WinHex改写光盘约定位置的内容。每次人工来改虽说不是麻烦,但毕竟不符合程序员精神。
几个注意点:
ckcore、ckfilesystem编译成Lib文件,src/sample路径下有一个 main.cc ,是一个简单的udf 写录程序,编译选项一定要统一, 例如我们此处选 MD(多线程静态库),那么库应用程序应该也一致;
ckfilesystem 依赖 ckcore,记得导入lib,可以在链接选项中附加库,也可以#program comment(lib,’yourlib.lib’)
项目是跨平台的,在windows VS下编译时,记得选择 Windows标准库,注意不要选择 UNICODE字符 ,否则1)会产生大量链接错误 2)因为字符编码问题无法识别目录名,原因可以分析 ckcore/type.hh ;
还需要注释掉filetree.cc 中涉及到 的??wstring 类型与string的不匹配??(对程序逻辑的影响还未分析)
转载于:https://www.cnblogs.com/diving/archive/2012/09/20/2696142.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-08-17 牛客刷题
2022-08-17 uipath
2020-08-17 config.status: error: cannot find input file: `Makefile.in'
2020-08-17 AC_LIB_LINKFLAGS_BODY(iconv)'
2020-08-17 cairo替换不对系统不断重启
2020-08-17 cairo_pattern_mesh_begin_patch bug问题
2020-08-17 tar.xz 解压