亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決 mingw-w64 MSVCRT 依賴問題

如何解決 mingw-w64 MSVCRT 依賴問題

Go
慕沐林林 2023-08-07 10:36:35
我正在使用 Go1.12 + msys2/mingw-w64(9.2.0) 構建 golang 項目,它顯示錯誤:D:\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: in function `pre_c_init':E:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:146: undefined reference to `__p__fmode'D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: in function `__tmainCRTStartup':E:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:290: undefined reference to `_set_invalid_parameter_handler'D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: E:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:299: undefined reference to `__p__acmdln'D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-merr.o): in function `_matherr':E:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/merr.c:46: undefined reference to `__acrt_iob_func'D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-pseudo-reloc.o): in function `__report_error':經過一番研究,我確信這是 mingw64 的 msvcrt 兼容性問題。我知道有這樣的解決方法:未解析的外部符號 __imp__fprintf 和 __imp____iob_func,SDL2?但這并不能解決我的所有問題。我嘗試鏈接庫:LDFLAGS: -L%filepath% -llegacy_stdio_definitions,沒有任何變化。是否有補丁可以修復它,或者我是否必須構建我的自定義版本的 mingw64?
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

是的,Mingw64 使用 msvcrt。

以下是一些有助于解決 Mingw64 和 msvcrt 之間的依賴問題的提示。主要目標是讓編譯器加載正確版本的 MSVCRT 庫系列。

1.更新Mingw64。

2.檢查Mingw64\include_mingw.h(或x86_64-w64-mingw32\include)中的MSVCRT_VERSION,確保版本號與您的Windows版本匹配,或修改它。

3.看看鏈接器選項,如“#cgo LDFLAGS: -Lxxx”,不要弄亂庫路徑。刪除任何不必要的庫路徑設置,讓鏈接器自己找到庫。

  1. 確保所有內容都是使用相同的庫構建的。


查看完整回答
反對 回復 2023-08-07
  • 1 回答
  • 0 關注
  • 416 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號