CRT未初始化。

3
我正在尝试使用MSVC 2010编译一个项目,编译成功,但当我尝试运行应用程序时,它会给出CRT未初始化的错误。这是一个控制台应用程序,因此我尝试将mainCRTStartup指定为入口点,但没有帮助。
在同一解决方案中,还有其他项目,它们没有这样的问题。我看到它们之间的区别是不工作的那个使用了boost。如果这很重要,Boost v1.38.0。运行时库是Multi-threaded DLL。
链接器命令行是:
/OUT:"D:\temp\ghost\Release\ghost.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"..\zlib\lib" /LIBPATH:"..\mysql\lib\opt" /LIBPATH:"..\boost\lib" "ws2_32.lib" "winmm.lib" "zdll.lib" "StormLibRAS.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "D:\temp\ghost\bncsutil\vc8_build\Release\BNCSutil.lib" /MANIFEST /ManifestFile:"Release\ghost.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\temp\ghost\Release\ghost.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /PGD:"D:\temp\ghost\Release\ghost.pgd" /LTCG /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE

你有没有使用CreateThread这个函数? - Necrolis
似乎不是,至少在搜索中没有发现任何相关内容。 - Riddle Wrong
我在命令行中没有看到boost lib-s。你是用LoadLibrary动态加载它们吗? - MichalR
有收到任何编译警告吗? - zr.
如果有任何答案是正确或有帮助的,请接受或点赞。 - Ben
3个回答

0
我认为在启动之前,您应该将路径设置为boost/lib,以便它可以找到boost库。

0
对我来说,这很简单:Spy++是打开的,所以关闭Spy++就解决了问题!

0

你是否使用了/DBOOST_THREAD_USE_DLL /DBOOST_ALL_DYN_LINK编译设置?

如果Boost认为你正在使用静态链接的CRT,而你又在使用MT DLL,则可能会导致此类问题。

也请记得清理并重新构建项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接