2011-10-14 462 views
3

我想用MSVC 2010編譯一個項目,編譯是好的,但是當我嘗試運行該應用程序時,它使CRT未初始化錯誤。它是一個控制檯應用程序,所以我試圖將mainCRTStartup指定爲Entry Point,但它沒有幫助。 在同樣的解決方案中還有其他項目,他們沒有這樣的問題。我看到他們之間的差異是一個不工作,使用提升。如果這很重要,請升級v1.38.0。運行時庫是多線程DLL。CRT未初始化

鏈接器命令行是:

/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 
+0

你是否在使用'CreateThread'? – Necrolis

+0

似乎不是,在搜索中至少沒有發現 –

+0

我在cmd行中沒有看到boost lib-s。你用LoadLibrary動態加載它們嗎? – MichalR

回答

0

我想你應該設置PATH啓動,以便它可以找到Boost庫之前,以提高/ lib目錄。

0

您是否在編譯/DBOOST_THREAD_USE_DLL /DBOOST_ALL_DYN_LINK

如果Boost認爲您使用的是靜態鏈接CRT並且您使用的是MT DLL,則可能導致此類問題。

還記得清理和重建。

0

對我來說,這很簡單:Spy ++是開放的,所以關閉Spy ++解決了這個問題!