2011-10-14 4 views
3

MSVC 2010에서 하나의 프로젝트를 컴파일하려고하는데 컴파일이 잘되었지만 응용 프로그램을 실행하려고하면 CRT가 초기화되지 않았습니다. 콘솔 응용 프로그램이므로 entrypoint로 mainCRTStartup을 지정하려고했지만 도움이되지 않았습니다. 동일한 솔루션에는 다른 프로젝트가 있으며 이러한 문제가 없습니다. 내가 그들 사이에 보는 차이점은 작동하지 않는 것이 부스트를 사용한다는 것입니다. 이것이 중요한 경우 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-s가 표시되지 않습니다. LoadLibrary로 동적으로로드합니까? – MichalR

답변

0

나는 당신이 부스트 라이브러리를 찾을 수 있도록 시작하기 전에/lib 디렉토리를 높일 수있는 경로를 설정한다고 생각합니다.

0

/DBOOST_THREAD_USE_DLL /DBOOST_ALL_DYN_LINK으로 컴파일 중입니까?

Boost가 정적으로 연결된 CRT를 사용하고 MT DLL을 사용하고 있다고 생각하면이 문제가 발생할 수 있습니다.

또한 청소하고 다시 작성해야합니다.

0

나를 위해, 이것은 매우 간단했습니다 : Spy ++가 열려서 Spy ++를 종료하면 문제가 해결됩니다!

관련 문제