fedora - 使用 mingw64 交叉编译 - 通配符扩展
问题描述
我正在尝试使用他们的 mingw64 交叉编译器从 Fedora 交叉编译适用于 Windows 的 GNU grep。这个过程真的很简单,只有一个例外。默认情况下,mingw64 似乎不会在命令行上扩展通配符,因此会grep FOO *
给出“无效参数:*”而不是搜索当前目录中的所有文件。
经过一番研究,我发现_dowildcard
在mingw64 CRT中有一个外部符号,如果设置为-1,它将触发通配符扩展。但是我没有找到关于如何设置它的有用文档(可能是因为它被认为是显而易见的 ;-))。
我可以修改源代码来设置变量,但如果可能的话,我更希望不必修改源代码。(我想建立一个自动构建,并且应用代码补丁只会增加我想避免的复杂性)。有什么方法可以_dowildcard
从 configure 或 make 命令行进行设置?我似乎记得旧版本的 mingw 有一个setargv.obj
文件可以链接到您的项目以启用通配符扩展 - mingw64 有类似的东西吗?
解决方案
来自上述@ssbssa 的回答:
CRT_glob.o
mingw 软件包提供了一个文件文件,位于/usr/x86_64-w64-mingw32/sys-root/mingw/lib/CRT_glob.o
(或 32 位的相应位置)中,您可以将其与可执行文件链接以激活命令行通配符。
您必须通过完整路径名指定文件,链接器才能找到它。
推荐阅读
- xpath - Umbraco 8 - 使用 ContentAtXPath() 方法获取节点的子节点
- sql-server - 管道中的 Azure SQL ddl 构建失败 - 忽略 sys.tables
- python - NGINX 服务器在局域网内正常工作,但在局域网外不能工作
- angular - Angular 7:使用 mat-select:动态获取 mat-option 的选项会创建一个永无止境的循环
- postgresql - 有没有办法更新 PostgreSQL 表中所有值为 0 的空值
- amazon-s3 - alpakka:来自 s3 存储桶的流对象
- windows - 在运行显示绘图的脚本时隐藏主 Octave 窗口
- scala - Scala中带花括号的函数的奇怪定义和调用(函数作为函数的参数)
- javascript - Tempus Dominus 不显示 HTML 值标签
- azure - Azure 函数 v3 - Twilio 输出绑定不起作用