最近突然遇到了很奇怪的问题, 开发环境是VS2019, Qt5.9.6
经常性的在重新编译的时候出现“LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup”
可是一旦再次编译(不使用重新编译), 该错误就会消失了。
不仅仅是可执行工程, dll也会遇到“LINK : error LNK2001: 无法解析的外部符号 __DllMainCRTStartup@12”
同样, 只要不是重新编译, 选择再次编译问题就会消失
百思不得其解,虽然不影响手动编译,但是自动化编译完全就做不了了。希望高手能够解决。
链接器的所有选项如下:
dll的
/OUT:"D:\GIT\xxxx\bin\BasicDataManager.dll" /MANIFEST /NXCOMPAT /PDB:"D:\GIT\xxxx\bin\BasicDataManager.pdb" /DYNAMICBASE "D:\Qt\Qt\5.9.6\msvc2015\lib\qtmain.lib" "shell32.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Gui.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Sql.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Core.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"D:\GIT\xxxx\lib\BasicDataManager.lib" /DEBUG /DLL /MACHINE:X86 /SAFESEH /PGD:"D:\GIT\xxxx\bin\BasicDataManager.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\BasicDataManager.dll.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\Qt\Qt\5.9.6\msvc2015\lib" /LIBPATH:"C:\opensslx86\lib" /LIBPATH:"C:\Utils\my_sql\my_sqlx86\lib" /LIBPATH:"C:\Utils\postgresqlx86\pgsql\lib" /TLBID:1
exe的
/OUT:"D:\GIT\xxxx\bin\BasicDataManagerUI.exe" /MANIFEST /NXCOMPAT /PDB:"D:\GIT\xxxx\bin\BasicDataManagerUI.pdb" /DYNAMICBASE "BasicDataManager.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\qtmain.lib" "shell32.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Charts.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Widgets.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Gui.lib" "D:\Qt\Qt\5.9.6\msvc2015\lib\Qt5Core.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /SAFESEH /PGD:"D:\GIT\xxxx\bin\BasicDataManagerUI.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\BasicDataManagerUI.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\Qt\Qt\5.9.6\msvc2015\lib" /LIBPATH:"D:\GIT\xxxx\lib" /LIBPATH:"C:\opensslx86\lib" /LIBPATH:"C:\Utils\my_sql\my_sqlx86\lib" /LIBPATH:"C:\Utils\postgresqlx86\pgsql\lib" /TLBID:1