Windows 10 上的 LibPNG 构建问题

2024-06-19

我试图在 Windows 10 上构建 libpng 以获取 win32 二进制文件,但我认为有一个与 awk 解析带有 CRLF 行结尾的文件相关的问题。我尝试使用 dos2unix 命令转换文件,但没有成功,结果相同 - 在 make 命令上我得到下一个输出:

sh-3.1$ make
rm -f pnglibconf.c pnglibconf.tf[45]
gawk -f ./scripts/options.awk out=pnglibconf.tf4 version=search\
            ./pngconf.h ./scripts/pnglibconf.dfa\
            ./pngusr.dfa  1>&2
gawk -f ./scripts/options.awk out=pnglibconf.tf5 pnglibconf.tf4 1>&2
options.awk: bad line (10): com
make: *** [pnglibconf.c] Error 1

编译器是MinGW,WIndows 10 x86上的MSYS v1.0,libpng版本是1637。如何解决这个问题?

更新:通过下载 tar.gz 存档解决,但有新问题

sh-3.1$ make                                                                                                            make  all-am                                                                                                            make[1]: Entering directory `/c/Users/user/Downloads/libpng-1.6.37.tar/libpng-1.6.37'                                   depbase=`echo contrib/tools/pngfix.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\                                                      gcc -DHAVE_CONFIG_H -I.     -g -O2 -MT contrib/tools/pngfix.o -MD -MP -MF $depbase.Tpo -c -o contrib/tools/pngfix.o contrib/tools/pngfix.c &&\                                                                                                  mv -f $depbase.Tpo $depbase.Po                                                                                  In file included from contrib/tools/../../png.h:330,
                 from contrib/tools/pngfix.c:44:
contrib/tools/../../pnglibconf.h:206:54: error: expected identifier or '(' before '-' token
 #define PNG_TEXT_Z_DEFAULT_STRATEGY                                                   0
                                                      ^
In file included from contrib/tools/../../png.h:335,
                 from contrib/tools/pngfix.c:44:
contrib/tools/../../pngconf.h:524:9: error: unknown type name 'ptrdiff_t'
 typedef ptrdiff_t png_ptrdiff_t;
         ^~~~~~~~~
make[1]: *** [contrib/tools/pngfix.o] Error 1                                                                           make[1]: Leaving directory `/c/Users/user/Downloads/libpng-1.6.37.tar/libpng-1.6.37'                                    make: *** [all] Error 2

经过实验验证,在Linux上不会出现这个问题。


我的解决方案是将 script/pnglibconf.dfa 上的换行符从 CRLF 更改为 LF。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 10 上的 LibPNG 构建问题 的相关文章

  • 在 Windows 上使用 Mono

    我知道这听起来很愚蠢但是 我发现了this http do davebsd com 应用程序是在 Mono 上编写的 并且是开源的 在查看源代码时 我发现这两个 using 指令阻止了我 using Gdk using Mono Unix
  • 在Windows 64位上将mod_wsgi模块加载到apache中的问题

    我正在尝试安装 mod wsgi 模块操作说明 http code google com p modwsgi wiki InstallationOnWindows 我从以下位置下载了 mod wsgi so这个来源 http www lfd
  • 如何使用 gnuwin32 Makefile 执行 powershell/cmd 命令?

    我尝试使用以下 makefile 处理器在 Windows 的 makefile 中使用curl rm start 等命令 http gnuwin32 sourceforge net packages make htm http gnuwi
  • win32应用程序、Windows窗体应用程序和控制台应用程序之间有什么区别?

    我想知道 windows 窗体应用程序 win32application 和控制台之间有什么区别 我知道 windows 窗体应用程序和 win32 应用程序都是 gui 工具 但我想知道何时使用其中一个而不是另一个 我可以转换吗控制台应用
  • 我是否必须在 CComPtr 对象上调用 Release() 方法?

    我正在使用 SAPI5 API 来处理文本到语音 如果我简化我的代码 如下所示 我删除了错误检查以尽可能简化它 int main CoInitialize NULL CComPtr
  • 将 runas 作为子进程启动并将密码写入标准输入?

    我正在尝试编写一个 C 程序 该程序应该从 Windows 调用 runas 工具并自动输入密码 我尝试过的 Process runas new Process runas StartInfo FileName runas runas St
  • 批处理文件进度旋转轮

    我已经尝试了好几天了 似乎可以让它发挥作用 我找到了一个例子 但它使用了 CryEcho 但它不起作用 我只是想添加这个 让用户知道在 ping IP 地址时发生了什么事 我确实在这里找到了一些代码 但这让我感到困惑 因为我刚刚开始为了好玩
  • MY SQL - 错误代码:1010。删除数据库时出错(无法 rmdir;errno:13)

    当尝试删除 MySQL 中的数据库时 DROP DATABASE IF EXISTS temporarydata 我收到以下错误 Error Code 1010 Error dropping database can t rmdir tem
  • 使用通配符删除多个文件

    你知道在 Linux 中这很容易 但我无法理解如何在 Windows 上用 C 做到这一点 我想删除所有与通配符匹配的文件f txt 我该如何去做呢 您可以使用DirectoryInfo EnumerateFiles功能 https msd
  • 即使队列已重命名,如何在 Windows 上唯一标识该打印队列?

    如何唯一且可靠地识别给定服务器上的 Windows 打印队列 包括跨打印队列重命名 我想处理如下情况 Jdoe 创建打印机 A 我的程序在某个时刻收集有关打印机 A 的信息 Jdoe 将打印机 A 重命名为打印机 AA 我的程序在某个时刻再
  • 无法在 Qt Creator 中检索调试输出

    在 Windows 上的 Qt Creator 中 qDebug 语句不起作用 并且输出窗口中出现以下消息 无法检索调试输出 如何解决 如果多个 Qt Creator 实例处于活动状态 则可能会出现此问题 要解决此问题 只需关闭 Qt Cr
  • 使用 Inno Setup 将序列号写入文件

    我正在尝试让以下 Inno Setup 代码正常工作 Setup UserInfoPage yes Code function CheckSerial Serial String Boolean begin Result true Save
  • MFC中如何获取子菜单?

    我正在尝试获取一个子菜单 以便我可以在显示它之前对其进行更改 所以我创建了一个OnInitMenu 我的窗口的处理程序 我本来计划使用pMenu gt GetMenuItemInfo 获取子菜单 然而 这似乎行不通 为了找到我想要的菜单 我
  • 如何以编程方式移动 Windows 任务栏?

    我想知道任何类型的 API 或解决方法 例如脚本或注册表 来将 Windows 任务栏移动 或调整大小 到另一个位置 包括另一个显示器 如果是双显示器 当然 我们可以使用鼠标来移动任务栏 但我想通过程序或某种自动化方式来移动它 我试图找到
  • 使用 Ant build 命令为目录生成校验和

    我尝试生成checksum questions tagged checksum对于目录使用ant questions tagged ant 我已尝试以下命令 但它会在每个文件的每个文件夹内递归生成
  • 如何在 Windows 窗体应用程序中跟踪 C# 中两次按钮单击之间的时间?

    我已经用 C 创建了一个 Windows 窗体应用程序 其中接受用户的输入 我想计算用户在两次提交之间花费的时间 我该怎么做 Use 跑表 http msdn microsoft com en us library system diagn
  • 当应用程序最小化时隐藏表单

    我有一个主表单和一个状态表单 当我的应用程序中的工作正在进行时 我会显示它们 如果工作完成我就打电话Hide状态表上出现 状态表消失 当我最小化主窗体而等待窗体可见时 就会出现问题 然后两种形式都被隐藏 这就是我想要的 但是 如果工作完成时
  • 如何正确调用 LsaLogonUser 进行交互式登录?

    我正在尝试使用 LsaLogonUser 创建交互式登录会话 但它总是返回STATUS INVALID INFO CLASS 0xc0000003 从网上查到的内存布局KERB INTERACTIVE LOGON结构很棘手 但我很确定我做得
  • 如何使用 Windows API 检索 HD 供应商/序列号

    我说的是physical磁盘驱动器 而不是卷 分区 逻辑驱动器 所以通常建议GetVolumeInformation函数不适用于我的情况 确切地说 我直接使用尚未分区的磁盘 我通过打开它的句柄CreateFile功能 hDisk Creat
  • PHP中如何找出特定进程仍在运行

    我正在编写一个脚本 该脚本构建其他脚本的队列 并应该管理它们的启动 管理器脚本应该知道哪个子进程已经完成 因此它可以启动在队列中等待的其他脚本 我添加了一个 echo 获取每个子进程的进程 ID 所以我有我的子进程进程 ID 现在正在使用系

随机推荐