Постоянные ошибки LNK1104 в проекте VS 2017

У меня есть этот огромный и очень старый проект C++, который я создаю с помощью Visual Studio 2017, используя компилятор VS 2013 и Incredibuild.

Когда я создаю проект, я очень часто получаю ошибки компоновщика LNK1104, что выходной файл не может быть открыт. Если я создам снова после получения ошибки, связывание этого проекта будет работать нормально, но я получаю ту же ошибку с одним из следующих проектов в решении.

Иногда эта ошибка не возникает, и все решения собираются нормально, а иногда я получаю эту ошибку дюжину раз, пока не соберу все проекты.

Похоже, VS блокирует себя, но я понятия не имею, где искать, и пока не нашел много полезных подсказок. Но это сводит меня с ума.


person Jarlaxle    schedule 19.11.2018    source источник
comment
Для тех из нас, кто не знает, что такое ошибка LNK1104, эта ссылка говорит, что компоновщику не удалось открыть указанный файл.   -  person Some programmer dude    schedule 19.11.2018
comment
Что касается возможных причин, кажется, что IncrediBuild создает несколько объектных файлов параллельно (и распределенно). Возможно, зависимости проекта настроены неправильно, поэтому система пытается выполнить компоновку до того, как будут построены все объектные файлы? Можно ли его отключить? И если да, то решает ли это проблему?   -  person Some programmer dude    schedule 19.11.2018
comment
В Incredibuild есть опция параллельного связывания, которая была активна. Я отключил его и попробую, если это имеет значение. PS: Я забыл упомянуть, что файл, который нельзя открыть, всегда находится в сборке.   -  person Jarlaxle    schedule 19.11.2018


Ответы (1)


У меня были похожие проблемы с Incredibuild, и это всегда было одной из двух причин:

  • Мой порядок сборки проекта был неправильным, поэтому я пытался связать с lib/dll, которая еще не была собрана
  • Работающая программа где-то еще на моем компьютере уже использовала одну из dll/exe, которую я пытался собрать.

Попробуйте проверить порядок сборки, настроив зависимости каждого проекта в разделе Решение >> Зависимости проекта >> Зависимости.

person VincentDM    schedule 12.02.2019