我正在出現一個很奇怪的鏈接錯誤:奇怪的VC連接錯誤LNK1107引用LINK.EXE
link.exe : fatal error LNK1107: invalid or corrupt file: cannot read at 0x270
但是,這是奇怪的,因爲通常的錯誤消息,告訴你什麼對象是無效或損壞。換句話說,通常此錯誤消息看起來是這樣的:
myDLL.dll : fatal error LNK1107: ....
然而,在這種情況下,無效的對象是應用程序本身(LINK.EXE)運行!
我試着用另一個我知道有效的副本替換可執行文件。同樣的錯誤。
我運行的命令是這樣的:
../vendor/microsoft/msdev80_2005/VC/bin/cl.exe /nologo /X /w /EHsc -I../vendor/m
icrosoft/msdev80_2005/VC/atlmfc/include -I../vendor/microsoft/msdev80_2005/VC/in
clude -I../vendor/microsoft/msdev80_2005/VC/PlatformSDK/Include /D_WIN32 /DBOOST
_USE_WINDOWS_H /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x0501 /DBOOST_THREAD_USE_LI
B /DBOOST_ALL_NO_LIB /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Z7
/MTd /c -I../vendor/boost.org/boost/1.45.0/include /Fobugshow/obj/win32/dbg/main.o
bugshow/main.cpp
任何想法,爲什麼LINK.EXE將失敗這樣的:
../vendor/microsoft/msdev80_2005/VC/bin/link.exe /NOLOGO /SUBSYSTEM:CONSOLE /LIB
PATH:../vendor/microsoft/msdev80_2005/VC/atlmfc/lib /LIBPATH:../vendor/microsoft
/msdev80_2005/VC/lib /LIBPATH:../vendor/microsoft/msdev80_2005/VC/PlatformSDK/Li
b /LIBPATH:lib/win32/dbg /OUT:bin/win32/dbg/bugshow.exe Advapi32.lib ws2_32.lib
bugshow/obj/win32/dbg/main.o libA.lib libB.lib libC.lib libD.lib
main.o是越來越使用下面的編譯器指令編譯?
UPDATE:
當我補充一點,在LINK.EXE我路上所在,然後調用LINK.EXE不帶路徑前綴的文件夾,我收到以下錯誤,而不是:
LINK: fatal error LNK1181: cannot open input file 'link.exe'
爲什麼link.exe試圖拼命打開自己?!?!
爲什麼當您運行'msdev80_2005/VC/bin/cl.exe'時爲此'visual-studio-2008'添加標籤? – ildjarn 2011-06-14 16:19:07
@ildjarn:fixed,ty – 2011-06-14 16:20:12
你真的是從命令提示符手動運行這些,還是運行它們的工具? – 2011-06-14 19:57:52