【发布时间】:2021-03-23 02:20:05
【问题描述】:
我的平台是 x86_64 + Windows 10 + Cygwin。我的编译器是x86_64-w64-mingw32-gcc。
出于某种原因,我不得不使用-mabi=sysv 选项编译我的程序,如果可能的话,我想避免使用默认的-mabi=ms 选项。
程序编译成功。但是当它调用像printf 这样的库函数时,它segfaults。原因是库函数驻留在msvcrt.dll 中,这可能是使用-mabi=sysv 以外的调用约定预构建的。
那么,有没有办法在 Cygwin 中安装使用-mabi=sysv 编译的库?
【问题讨论】:
-
我认为这是不可能的。为什么需要这个?
-
@ssbssa 我正在处理的项目中有手写的 x86 程序集。手写汇编代码使用
sysv调用约定。现在我们将它移植到一个 mingw 环境,它的默认值为ms,我们认为只安装sysv库而不重写汇编部分会很好。但由于我们没有找到方法,我们已经重写了程序集。
标签: gcc cygwin mingw calling-convention sysv