Инкрементная ошибка компоновщика VC++ LNK1000

Отказ от ответственности: я парень C# практически без опыта VS C++/MFC.

Я пытаюсь получить несколько проектов, построенных на моей машине, которые смешаны C++/.NET. При компиляции проекта C++ через командную строку на моем компьютере я получаю эту ошибку:

ССЫЛКА: фатальная ошибка LNK1000: внутренняя ошибка во время IMAGE::BuildImage [SOURCE_CODE_PATH_TO_VCPROJ]

Моя версия Link.exe: 9.00.30729.1

Строка кода, которая вызывает это, довольно проста:

System:: String ^ fullPath = gcnew System:: String (dllpath);

Когда я отказываюсь от gcnew и просто записываю строку на место, все компилируется правильно.

Поиск в Google приводит к большому количеству сообщений о том, что эта проблема исправлена ​​с помощью kb948127, который включен в VS2008 SP1. Я подтвердил, что у меня установлено данное исправление. Я также проверил, что добавочное связывание отключено с параметром /INCREMENTAL:NO, но я все еще испытываю ошибку при каждой компиляции.

Есть ли настройка или переключатель, которые мне не хватает? Кто-нибудь сталкивался с такой проблемой раньше?

2 ответа

Решение

Я исправил ошибки компоновщика, изменив код для использования преобразования marshal_as для создания System::String^, но мне не ясно, что на самом деле вызвало ошибку компоновщика из исходного кода.

Вот строка, которую я поменял:

System::String^ fullPath = marshal_as (dllPath);

Я получил похожую ошибку:

Linking...
TapCommandFormat.lib(CTapCommandDisplay.obj) : fatal error LNK1000: unknown error; consult documentation for technical support options

Error executing link.exe (tool returned code: 1000)

ITP - 1 error(s), 0 warning(s)

Это произошло потому, что моей системе не хватило виртуальной памяти. Я закрыл огромный документ, который занимал около 1,4 ГБ виртуальной памяти, и проблема ушла...

$ 0,02

Другие вопросы по тегам