unresolved external symbol ___chkstk_ms referenced in function _x264_vfprintf.isra.0 問題的解決
在Visual Studio(VC++)中,使用mingw32 gcc編譯的庫檔案(*.a)
新增gcc編譯好的庫到連結依賴中之後,如果編譯出現:無法解析的外部符號, 例如:
Build started...
1>------ Build started: Project: x264Test, Configuration: Debug Win32 ------
1>x264Test.cpp
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___chkstk_ms referenced in function _x264_vfprintf.isra.0
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___umoddi3 referenced in function _x264_reduce_fraction64
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___udivdi3 referenced in function _x264_reduce_fraction64
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___mingw_vsscanf referenced in function _sscanf
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___mingw_vsprintf referenced in function _sprintf
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___mingw_vfprintf referenced in function _fprintf.constprop.0
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___mingw_vsnprintf referenced in function _x264_vfprintf.isra.0
1>libx264.a(base.o) : error LNK2019: unresolved external symbol _fseeko64 referenced in function _x264_slurp_file
1>libx264.a(base.o) : error LNK2019: unresolved external symbol _ftello64 referenced in function _x264_slurp_file
1>libx264.a(base.o) : error LNK2019: unresolved external symbol _strtok_r referenced in function _x264_param_parse
1>libx264.a(base.o) : error LNK2019: unresolved external symbol ___mingw_strtod referenced in function _x264_param_parse
1>D:\FPiano工作區\x264Test\Debug\x264Test.exe : fatal error LNK1120: 11 unresolved externals
1>Done building project "x264Test.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
需要複製:
C:\msys64\mingw32\lib\gcc\i686-w64-mingw32\11.2.0\libgcc.a
C:\msys64\mingw32\i686-w64-mingw32\lib\libmingwex.a(32位的)
或
C:\msys64\mingw64\x86_64-w64-mingw32\lib\libmingwex.a(64位的)
到工程目錄中。(或工程中包含其放置的目錄)
並設定連結依賴libgcc.a ,libmingwex.a
同理:
在Visual Studio(VC++)中,使用mingw32 gcc編譯的dll檔案,要新增相關的dll檔案到工程中。