Я створив новий проект C ++ у Visual Studio 2008. Жодного коду ще не написано; Змінено лише налаштування проекту.
Коли я складаю проект, я отримую таку фатальну помилку:
фатальна помилка LNK1104: не вдається відкрити файл 'C: \ Program.obj'
Я створив новий проект C ++ у Visual Studio 2008. Жодного коду ще не написано; Змінено лише налаштування проекту.
Коли я складаю проект, я отримую таку фатальну помилку:
фатальна помилка LNK1104: не вдається відкрити файл 'C: \ Program.obj'
Відповіді:
Ця проблема викликана тим, що вказано залежність до файлу lib, який мав пробіли на своєму шляху. Шлях повинен бути оточений лапками, щоб проект склав правильно.
На Властивості конфігурації -> Linker -> Вкладка властивостей проекту є властивість Додаткові залежності . Цю проблему виправили, змінивши цю властивість із:
C: \ програмні файли \ програмне забезпечення sdk \ lib \ library.lib
До:
"C: \ програмні файли \ програмне забезпечення sdk \ lib \ library.lib"
Куди я додав цитати.
"C:\Program Files\sofware sdk\lib\library.lib"
. Відсутність ;
заповіту також призведе до неправильного складання проекту.
Це може статися, якщо файл все ще працює.
: -1: помилка: LNK1104: не вдається відкрити файл 'налагодження \ ****. Exe'
Проблема пішла для мене після закриття та повторного відкриття Visual Studio. Не впевнений, чому проблема сталася, але це, можливо, варто було б зняти.
Це було на VS 2013 Ultimate, Windows 8.1.
Переконайтесь, що у вас це не ввімкнено: Властивості конфігурації -> C / C ++ -> Препроцесор -> Попередній процес у файлі .
Моя проблема полягала у відсутності .lib
розширення, я якраз посилався mylib
і VS вирішив шукати mylib.obj
.
У моєму випадку це було питання неправильно направленого посилання. Проект посилався на вихід іншого проекту, але останній не виводив файл там, де шукав перший.
Рішення 1 (в моєму випадку): перезапустити процес провідника Windows (так, менеджер файлів Windows).
Рішення 2:
Я припускаю, що іноді файлова система або хтось її контролює, втрачається з дозволами. Перш ніж перезапустити сеанс Windows, спробували вбити зомбі- msbuild32.exe
процеси, перезапустити візуальну студію, не встановити жодної, навіть не показуючи файл проблеми. Немає проблем з конфігурацією побудови. Це трапляється час від часу. Якась внутрішня річ у Windows не виправляється, потребує перезавантаження.
У мене була така ж помилка, просто з пакетом Nuget, який я встановив (той, який не є лише заголовком), а потім спробував видалити.
Що для мене було не так, це те, що я все ще включав заголовок для пакета, який я просто видалив в одному з моїх .cpp-файлів (досить нерозумно, так).
Я навіть видалив додаткові каталоги бібліотеки на це посилання Project -> Properties -> Linker -> General
, але, звичайно, безрезультатно, оскільки я все ще намагався посилатися на неіснуючий заголовок.
Безумовно, в цьому випадку заплутане повідомлення про помилку, оскільки назва заголовка була, <boost/filesystem.hpp>
але помилка дала мені, "cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"
і немає рядків чи нічого.
У мене була така ж проблема, але рішення моєї справи не вказано у відповідях. Моя антивірусна програма (AVG) визначила файл MyProg.exe
як вірус і помістила його у «сховище вірусів». Вам потрібно перевірити це сховище, а якщо файл є - то просто відновіть його. Це мені допомогло.
Я зіткнувся з тією ж проблемою, що і лінкер скаржиться на відсутність головного виконуваного файлу. Це сталося під час нашого порту рішення до нової Visual Studio 2013 . Рішення - це різноманітна суміш керованих та некерованих проектів / коду. Проблема (і виправлення) виявилася відсутнім файлом app.config у папці рішення. Узяв день, щоб зрозуміти це :(, оскільки журнал виводу був не дуже корисним.
Я перевірив усі мої налаштування відповідно до цього списку: http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . Це корисно для мене, і для моєї ситуації я з’ясовую, що залежність залежностей властивостей проектів має подвійне цитування, чого там не повинно бути.
У моєму випадку я замінила математичні файли бібліотеки з попереднього курсу Game Engine Graphics на GLM. Проблема полягала в тому, що я не додав їх до проекту в Провіднику рішень Visual Studio (хоча вони були у сховищі проектів).
У мене виникла ця проблема в поєднанні з помилкою LNK2038, після цього допису я відокремив RELEASE та DEBUG DLL. У цьому процесі я очистив всю папку, де проживали ці залежності.
На щастя, у мене була резервна копія всіх цих файлів, і я отримав файл, для якого ця помилка перекидається назад у папку DEBUG для вирішення проблеми. Код помилки якимось чином вводив в оману, оскільки мені довелося витратити багато часу, щоб знову дійти до цієї підказки з одного з відповідей з цього повідомлення.
Сподіваюся, що ця відповідь допоможе комусь, хто потребує.
Я вирішив його додавання в існуючий проект до мого рішення , яке я забув додати в перший раз.
У мене була така ж помилка:
fatal error LNK1104: cannot open file 'GTest.lib;'
Це було викликано ;
в кінці. Якщо у вас є кілька бібліотек, вони повинні бути розділені порожнім пробілом (пробіл), без коми і напівколонок!
Тому не використовуйте ;
та нічого іншого при переліку бібліотек уProject properties >> Configuration Properties >> Linker >> Input
Я спробував вище рішення, але не працював для мене. Тож я перейменую exe і відновити рішення. Це працює для мене.
У мене була така точна помилка при складанні DLL VC ++ у Visual Studio 2019:
LNK1104: не вдається відкрити файл 'C: \ Program.obj'
Виявилося в розділі Властивості проекту> Linker> Input> File Definition File, я вказав файл def, який мав неперевершену подвійну лапочку в кінці імені файлу. Видалення неперевершеної подвійної цитати вирішило проблему.
Я потрапив у ту ж проблему з "Visual Studio 2013".
LNK1104: cannot open file 'debug\****.exe
Це вирішено після закриття та перезапуску Visual studio.
У мене була така ж проблема, я щойно скопіював код у новий проект і розпочав збірку. Почала надходити якась інша помилка. помилка C4996: 'fopen': Ця функція або змінна може бути небезпечною. Поміркуйте замість цього використовувати fopen_s
Щоб вирішити цю проблему ще раз, я додав моє одне властивість до проекту Project, як показано нижче. Проект -> Властивості -> Властивість конфігурації -> c / c ++. У цій категорії є ім'я поля Preprocessor Definitions Я додав _CRT_SECURE_NO_WARNINGS це для вирішення проблеми Сподіваюся, що це допоможе ...
Спасибі