Согласно техническому заданию, необходимо реализовать часть приложения на C++. Задействовал нужные WinAPI, запустил проект в режиме отладки, нашел несколько ошибок, которые исправил. Теперь пытаюсь заново откомпилировать, собрать и запустить проект, а в
ответ получаю: “Ошибка 1 error LNK1104: не удается открыть файл “C:UsersMaximysDocumentsVisual Studio 2010ProjectsWin32DebugWin32.exe” C:UsersMaximysDocumentsVisual Studio 2010ProjectsWin32Win32LINK
Win32″. Читаю спецификацию и причины данной ошибки на MSDN(тут):
1)недостаточно памяти на диске – точно не то, т.к. на диске C еще около 50-70Гбайт;
2)файл не существует – тоже не то, файл Win32.exe лежит в нужной папке Debug;
3)При указании библиотек в диалоговом окне страниц свойств проекта имена библиотек следует разделять пробелами (а не запятыми) – сам ни одну библиотеку не подключал, так что снова не то;
4-5 пункт являются полным бредом по отношению к моей машине
6)Недостаточные файловые разрешения – снова не то – являюсь Администратором компьютера;
…
10)Файл мог быть открыт другой программой, и компоновщик не может вести запись в этот файл – открываем Диспетчер задач и смотрим, вдруг все формы проекта закрыли, а процесс не умер(у меня иногда такое с WPF-приложениями случается), хотя такого быть и не
должно, но нет – процессов с таким именем нет;
11)и т.д.
Т.е. никаких объективных причин для возникновения данной ошибки нет! Ладно, решил посмотреть что по этому поводу говорят на русскоязычных форумах – там вообще о таких ошибках не слышали; смотрю англоязычные – у одного человека еще год назад появилась такая
же проблема, он обратился на форум(адрес не вспомню), где ему дали сто двадцать два совета(народ тыкал пальцем в небо), которые так и не помогли(обычно англичане пишут(пер. с анг.):”Спасибо тебе, помогло”(даже откройте англоязычный MSDN), а тут нет ни
слова).
Сам нашел всего одну, но коренную методику борьбы с данной проблемы – “Reboot”(Перезагрузка), но каждые 10-15 минут перезагружаться – Вы меня простите, тут никакого времени не хватит.
Как побороть данную ошибку и с чем она может быть в действительности связана?
P.S.У файла “Win32.exe” атрибут “Только для чтения” не установлен, если что
-
Изменено
5 марта 2012 г. 10:56
I’ve created a new C++ project in Visual Studio 2008. No code has been written yet; Only project settings have been changed.
When I compile the project, I receive the following fatal error:
fatal error LNK1104: cannot open file ‘C:Program.obj’
asked Sep 25, 2008 at 14:29
Josh SklareJosh Sklare
3,9943 gold badges23 silver badges17 bronze badges
This particular issue is caused by specifying a dependency to a lib file that had spaces in its path. The path needs to be surrounded by quotes for the project to compile correctly.
On the Configuration Properties -> Linker -> Input tab of the project’s properties, there is an Additional Dependencies property. This issue was fixed by adding the quotes. For example, changing this property from:
C:Program Filessofware
sdkliblibrary.lib
To:
“C:Program Filessofware
sdkliblibrary.lib”
where I added the quotes.
Amin
1,4161 gold badge18 silver badges29 bronze badges
answered Sep 25, 2008 at 14:33
Josh SklareJosh Sklare
3,9943 gold badges23 silver badges17 bronze badges
11
This can happen if the file is still running as well.
:-1: error: LNK1104: cannot open file ‘debug****.exe’
answered Aug 13, 2014 at 16:10
CarolCarol
1,84326 silver badges29 bronze badges
5
The problem went away for me after closing and re-opening Visual Studio. Not sure why the problem happened, but that might be worth a shot.
This was on VS 2013 Ultimate, Windows 8.1.
answered Feb 4, 2015 at 17:07
Daniel NeelDaniel Neel
1,18713 silver badges27 bronze badges
3
Check also that you don’t have this turned on: Configuration Properties -> C/C++ -> Preprocessor -> Preprocess to a File.
answered Dec 26, 2015 at 19:11
Assaf LevyAssaf Levy
1,3121 gold badge12 silver badges20 bronze badges
2
My problem was a missing .lib
extension, I was just linking against mylib
and VS decided to look for mylib.obj
.
answered Dec 22, 2015 at 9:51
I had the same problem.It caused by a “,” in the name of a folder of additional library path.It solved by changing the additional library path.
answered Sep 26, 2013 at 5:20
harsiniharsini
3262 silver badges13 bronze badges
Solution 1 (for my case): restart windows Explorer process (yes, the windows file manager).
Solution 2:
- Close Visual Studio. Windows Logoff
- Logon, reopen Visual Studio
- Build as usual. It now builds and can access the problematic file.
I presume sometimes the file system or whoever is controlling it gets lost with its permissions. Before restarting the windows session, tried to kill zombie msbuild32.exe
processes, restart visual studio, check none even showing the problem file on. No build configuration issues. It happens now and then. Some internal thing in Windows does not fix up, needs a restart.
answered Dec 30, 2016 at 9:27
1
In my case it was a matter of a mis-directed reference. Project referenced the output of another project but the latter did not output the file where the former was looking for.
answered Aug 13, 2014 at 19:54
NewtopianNewtopian
7,4834 gold badges48 silver badges71 bronze badges
I had the same error, just with a Nuget package i had installed (one that is not header only) and then tried to uninstall.
What was wrong for me was that i was still including a header for the package i just uninstalled in one of my .cpp files (pretty silly, yes).
I even removed the additional library directories link to it in Project -> Properties -> Linker -> General
, but of course to no avail since i was still trying to reference the non-existent header.
Definitely a confusing error message in this case, since the header name was <boost/filesystem.hpp>
but the error gave me "cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"
and no line numbers or anything.
answered Jan 19, 2016 at 11:22
MatthiasMatthias
2,9602 gold badges22 silver badges38 bronze badges
I had the same problem, but solution for my case is not listed in answers.
My antivirus program (AVG) determined file MyProg.exe
as a virus and put it into the ‘virus storehouse’. You need to check this storehouse and if file is there – then just restore it. It helped me out.
answered Jun 7, 2016 at 6:16
in my case it was the path lenght (incl. file name).
..............SWXBinaryVS2008OutputWin32Debugboost_unit_test_framework-vc90-mt-gd-1_57.lib;
as for the release the path was (this has worked correctly):
..............SWXBinaryVS2008OutputWin32Releaseboost_unit_test_framework-vc90-mt-1_57.lib;
==> one char shorter.
- i have also verified this by renaming the lib file (using shorter name) and changing this in the
Linker -> input -> additoinal dependencies
- i have also verified this by adding absolut path instead of relative path as all those “..” has extended the path string, too. this has also worked.
so the problem for me was the total size of the path + filename string was too long!
answered Dec 8, 2020 at 9:09
1
I had a similar problem. I solved it with the following command to kill the running task:
taskkill /f /im [nameOfExe]
/f: Forces the task to close.
/im: The next parameter is a image name aka executable name e.g. Program.exe.
answered Sep 13, 2021 at 11:44
MarciMarci
3025 silver badges12 bronze badges
For an assembly project (ProjectName -> Build Dependencies -> Build Customizations -> masm (selected)), setting Generate Preprocessed Source Listing to True caused the problem for me too, clearing the setting fixed it. VS2013 here.
answered Nov 16, 2014 at 0:26
MadeOfAirMadeOfAir
2,9335 gold badges30 silver badges39 bronze badges
I run into the same problem with linker complaining about the main executable missing. This happened during our solution port to the new Visual Studio 2013. The solution is a varied mix of managed and un-managed projects/code. The problem (and fix) ended up being a missing app.config file in the solution folder. Took a day to figure this one out :(, as output log was not very helpful.
answered Dec 4, 2014 at 21:58
Nicko PoNicko Po
7275 silver badges21 bronze badges
I checked all my settings according to this list: http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . It is helpful to me and for my situation, I find out that Link Dependency of projects’ properties has double-quote, which should not be there.
answered Dec 19, 2014 at 16:07
DavidDavid
1,64617 silver badges22 bronze badges
I’m answering because I don’t see this particular solution listed by anyone else.
Apparently my antivirus (Ad-Aware) was flagging a DLL one of my projects depends on, and deleting it. Even after excluding the directory where the DLL lives, the same behaviour continued until I restarted my computer.
answered Nov 23, 2015 at 1:13
easutereasuter
1,12214 silver badges20 bronze badges
In my case, I had replaced math library files from a previous Game Engine Graphics course with GLM. The problem was that I didn’t add them to the project within Visual Studio’s Solution Explorer (even though they were in the project repository).
answered Feb 4, 2017 at 23:51
I had this issue in conjunction with the LNK2038 error, followed this post to segregate the RELEASE and the DEBUG DLLs. In this process I had cleaned up the whole folder where these dependencies were residing.
Luckily I had a backup of all these files, and got the file for which this error was throwing back into the DEBUG folder to resolve the issue. The error code was misleading in some way as I had to spend a lot of time to come to this tip from one of the answers from this post again.
Hope this answer, helps someone in need.
answered Feb 7, 2017 at 4:56
N00b Pr0grammerN00b Pr0grammer
4,4555 gold badges31 silver badges45 bronze badges
I solved it by adding an existing project to my solution, which I forgot to add in the first time.
answered May 31, 2017 at 18:20
Markus WeberMarkus Weber
1,04911 silver badges24 bronze badges
I had the same error:
fatal error LNK1104: cannot open file 'GTest.lib;'
This was caused by the ;
at the end. If you have multiple libraries, they should be separated by empty space (spacebar), no comma or semi-colons!
So don’t use ;
or any anything else when listing libraries in Project properties >> Configuration Properties >> Linker >> Input
answered Oct 25, 2017 at 18:31
zarzar
11.2k13 gold badges92 silver badges176 bronze badges
I tried above solution but didnt work for me.
So i rename the exe and rebuild the solution.
It works for me.
answered Nov 20, 2019 at 6:20
I had this exact error when building a VC++ DLL in Visual Studio 2019:
LNK1104: cannot open file ‘C:Program.obj’
Turned out under project Properties > Linker > Input > Module Definition File, I had specified a def file that had an unmatched double-quote at the end of the filename. Deleting the unmatched double quote resolved the issue.
answered Dec 12, 2019 at 22:14
MikeOnlineMikeOnline
94411 silver badges17 bronze badges
Killed msbuild32.exe
and built again. It worked for me.
answered Jul 16, 2020 at 11:09
ImadImad
7,07211 gold badges53 silver badges109 bronze badges
My issue was caused by other application using the .dll file I was trying to debug.
Closing the application that was using the .dll solved it for me.
answered Sep 13, 2020 at 1:32
NAGANAGA
133 bronze badges
Possible solutions:
-
Check if path contain any white spaces, Go to Properties > Linker > Input > additional path and include “path with white space”
-
If program are still running, close everything and restart.
-
Check if .obj file is not created. This happens when you directly build a project while Properties > C++ > Preprocessor > Generate preprocessor file is on. Turn it off and build the project then you can onn Properties > C++ > Preprocessor > Generate preprocessor file.
answered May 30, 2021 at 19:09
I hit the same problem with “Visual Studio 2013”.
LNK1104: cannot open file 'debug****.exe
It resolved after closing and re-starting Visual studio.
answered Nov 14, 2018 at 5:25
user3860869user3860869
1211 gold badge1 silver badge6 bronze badges
I was having the same problem , I have just copied the code to new project and started the build .
Some other error started coming.
error C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead
To solve this problem again, I have added my one property in the Project project as below.
Project -> Properties -> Configuration property -> c/c++ .
In this category there is field name Preprocessor Definitions
I have added _CRT_SECURE_NO_WARNINGS this to solve the problem
Hope it will help …
Thank You
answered Sep 14, 2017 at 10:19
SunilSunil
31 bronze badge
2
Я создал новый проект C++ в Visual Studio 2008. Код еще не написан, изменены только настройки проекта.
когда я компилирую проект, я получаю следующую фатальную ошибку:
фатальная ошибка LNK1104: не удается открыть файл ‘C:Program.obj’
2788
19
19 ответов:
эта конкретная проблема вызвана указанием зависимости для файла lib, который имел пробелы в своем пути. Путь должен быть окружен кавычками для правильной компиляции проекта.
на Свойства Конфигурации -> Компоновщик -> Ввод вкладка свойств проекта, есть Дополнительные Зависимости собственность. Эта проблема была исправлена путем изменения этого свойства:
C:Program файлыпрограммное обеспечение
sdklib библиотека.ЛибTo:
” C:Program файлыпрограммное обеспечение
sdklib библиотека.lib”где я добавил кавычки.
Это может произойти, если файл все еще работает.
:-1: ошибка: LNK1104: не удается открыть файл ‘ debug****.exe’
проблема ушла для меня после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может быть стоит попробовать.
Это было на VS 2013 Ultimate, Windows 8.1.
проверьте также, что вы не включили это: свойства конфигурации -> C / C++ – > препроцессор -> предварительная обработка файла.
У меня было то же самое problem.It вызвано символом”, ” в имени папки дополнительной библиотеки path.It решается путем изменения дополнительного пути к библиотеке.
моя проблема была отсутствует
.lib
расширение, я просто связывал противmylib
и ВС решил искатьmylib.obj
.
в моем случае это был вопрос неправильной ссылки. Проект ссылался на вывод другого проекта, но последний не выводил файл, где первый искал.
для сборки проекта (название проекта -> построение зависимостей -> сборки настройки -> компилятор MASM (некоторые)), задание Создать Предварительно Обработанный Список Источников до True вызвал проблему и для меня, очистив настройку, исправил ее. VS2013 здесь.
Я сталкиваюсь с той же проблемой, когда компоновщик жалуется на отсутствие основного исполняемого файла. Это произошло во время нашего порта решения для нового Visual Studio 2013. Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправить) в конечном итоге отсутствует приложение.конфигурации файл в папке решения. Потребовался день, чтобы понять это: (, поскольку выходной журнал был не очень полезен.
у меня была та же ошибка, только с пакетом Nuget, который я установил (тот, который не является только заголовком), а затем попытался удалить.
Что было неправильно для меня, так это то, что я все еще включал заголовок для пакета, который я только что удалил в одном из моих .cpp файлы (довольно глупо, да).
Я даже удалил дополнительную ссылку на каталоги библиотеки вProject -> Properties -> Linker -> General
, но, конечно, безрезультатно, так как я все еще пытался ссылаться на несуществующий заголовок.определенно сбивает с толку сообщение об ошибке в этом случае, так как имя заголовка
<boost/filesystem.hpp>
но ошибка дала мне"cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"
и никаких номеров строк или чего-то еще.
Я отвечаю, потому что я не вижу это конкретное решение, перечисленное кем-либо еще.
по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезагрузил компьютер.
У меня была та же проблема, но решение для моего случая не указано в ответах.
Моя антивирусная программа (AVG) определила файлMyProg.exe
как вирус и положить его в “хранилище вирусов”. Вам нужно проверить этот склад, и если файл есть – то просто восстановить его. Это меня выручило.
Решение 1 (для моего случая): перезапустите процесс Проводника windows (да, диспетчер файлов windows).
решение 2:
- Закрыть Visual Studio. Выход Из Системы Windows
- вход в систему, откройте Visual Studio
- построить как обычно. Теперь он строит и может получить доступ к проблемному файлу.
Я предполагаю, что иногда файловая система или тот, кто ее контролирует, теряется с ее разрешениями. Перед перезапуском сеанса windows, пытался убить зомби
msbuild32.exe
процессы, перезагрузите visual studio, не проверяйте даже отображение файла проблемы. Нет проблем с конфигурацией сборки. Это случается время от времени. Некоторые внутренние вещи в Windows не исправляются,требуется перезагрузка.
в моем случае Я заменил файлы математической библиотеки из предыдущего графического курса игрового движка на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (даже если они были в репозитории проекта).
У меня была эта проблема в сочетании с ошибкой LNK2038, а затем это post для разделения библиотеки DLL выпуска и отладки. В этом процессе я очистил всю папку, в которой находились эти зависимости.
к счастью, у меня была резервная копия всех этих файлов, и я получил файл, для которого эта ошибка отбрасывала обратно в папку отладки, чтобы решить проблему. Код ошибки вводил в заблуждение каким-то образом, поскольку мне пришлось потратить много времени, чтобы прийти к этому совету от одного из ответов с этого поста снова.
надеюсь, что этот ответ, помогает кому-то в нужде.
Я решил это с помощью добавлять an существующий проектto мой решение, который я забыл добавить в первый раз.
у меня была та же ошибка:
fatal error LNK1104: cannot open file 'GTest.lib;'
Это было вызвано
;
в конце. Если у вас есть несколько библиотек, они должны быть разделены пустым пространством (пробел), без запятой или точки с запятой!Так что не используйте
;
или что-нибудь еще при перечислении библиотек в свойства проекта > > свойства конфигурации > > Компоновщик > > ввод
У меня была такая же проблема , я просто скопировал код в новый проект и начали строить .
Некоторые другие ошибки начали приходить.
ошибка C4996:’ fopen’: эта функция или переменная может быть небезопасной. Рассмотрите возможность использования fopen_s вместоснова решить эту проблему, я добавил свое одно свойство в проект, как показано ниже.
Проект – > свойства – > свойство конфигурации – > c/c++ .
В этой категории есть поле Имя препроцессора определения
Я добавил _CRT_SECURE_NO_WARNINGS это для решения проблемы
Надеюсь, это поможет …Спасибо
Содержание
- ошибка LNK1104
- 15 ответов
- Почему фатальная ошибка » LNK1104: не удается открыть файл ‘C:Program.obj ‘» возникают при компиляции проекта C++ в Visual Studio?
- 19 ответов:
- фатальная ошибка LNK1104: невозможно открыть файл ‘libboost_system-vc110-mt-gd-1_51.lib’
- Решение
- Другие решения
- Why does fatal error «LNK1104: cannot open file ‘C:Program.obj’» occur when I compile a C++ project in Visual Studio?
- 27 Answers 27
ошибка LNK1104
ошибка LNK1104
Выводит ошибку при сборке LNK1104.В выводе пишет » LINK : fatal error LNK1104: не удается.
Ошибка компиляции LNK1104
Не могу понять почему ошибка, ведь все библиотеки подключены(
Для студий до 2010 версии немного в другом месте пути задаются
http://lh3.ggpht.com/_lV8Tjg9J. /s0/01.png
ура! заработало спс Deviaphan это реально помогло. А почему в книге про это не упоминается даже, хотя она под VC++ написана.
Добавлено через 3 минуты
теперь смогу дальше двигаться, мне DirectX нужен чтобы нарисовать график функции 2-х пременных
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Visual studio ошибка 2 error lnk1104: не удается открыть файл ‘kernel32.lib’
Я удалил visual studio express, и установил visual studio profissional. И при сборке простой.
Ошибка LNK1104 не удается открыть файл «glew32.lib»
Подскажите как исправить ошибку LNK1104 не удается открыть файл «glew32.lib»
Ошибка при компановке программы «fatal error LNK1104»
Здравствуйте. Нужна помощь. Запускаю через qeditor, встроенный в masm32 файл winurl.asm командой.
Ошибка компоновки fatal error LNK1104: не удается открыть файл «kernel32.lib»
Скажыте пожалуста что делать, оооочень нужно. у меня выдает ошыбку: 1>LINK : fatal error.
Источник
используя Visual Studio 2010, когда я создаю + запускаю свое приложение через короткие промежутки времени, я часто получаю следующую ошибку. Если я просто подожду минуту или две и попробую еще раз, все будет хорошо. Unlocker утверждает, что дескриптор не блокирует исполняемый файл.
как я могу узнать, что блокирует его?
если это сама Visual Studio, что я должен сделать, чтобы остановить его? или альтернативно освободить файл?
15 ответов
была эта проблема после переустановки сегодня. Убедитесь, что служба Application Experience запущена, а не отключена. Если его установить в руководство, я считаю, что VS запустит его.
У вас, вероятно, был случайный процесс сборки, который блокировал исполняемый файл, и он (случайный процесс) не очистился. В этом случае закройте visual studio, откройте Process explorer и уничтожьте все процессы, связанные с visual studio. Затем снова откройте visual studio и попробуйте перестроить проект.
Я знаю, что это довольно старый, но у меня была такая же проблема с Visual Studio 2010, все исправлено, поэтому другие могут все еще столкнуться с этим.
добавление моего пути проекта к «исключенным элементам» в моих настройках антивируса AVG, похоже, устранило проблему для меня.
попробуйте отключить любой антивирусный / резидентный щит и посмотреть, устраняет ли он проблему. Если это так, добавьте свой путь к проекту в исключенные каталоги в конфигурации AV.
возможно, вы не закрыли выход. Закройте выходные данные, очистите и восстановите файл. Вы сможете запустить файл.
Visual studio для создания новой сборки необходимо удалить предыдущий исполняемый файл и создать новый вместо старого, он не может сделать это, пока исполняемый файл все еще выполняется. Итак, если вы хотите сделать новую сборку, процесс старого исполняемого файла должен быть закрыт! (странно, что visual studio не закрывает его сам по себе, и да, это похоже на какую-то багги поведение.)
это утомительно делать вручную, поэтому вы можете просто файл bat и просто щелкнуть по нему, когда у вас есть такая проблема:
это работает для меня по крайней мере. Как предположение-я не закрываю свою программу должным образом на C++, поэтому, возможно, для visual studio нормально держать ее запущенной.
дополнение: Существует большой шанс быть таким, из-за не законченного применения. Проверьте, вызывали ли вы PostQuitMessage в конец, для того, чтобы дать знать окна, что вы сделали.
таким образом VS создает новый исполняемый файл, и проблема обрабатывается. Каждые несколько раз я сделайте это, я возвращаюсь к исходному имени, таким образом, циклически через
Если кто-то найдет причину и решение, Пожалуйста, ответьте и я могу двигаться в ответ на ваше, как мое решение.
У меня была такая же проблема, однако с использованием Codeblocks. Из-за этой проблемы я бросил программирование, потому что каждый раз я просто хотел выбросить свой компьютер из окна.
Я хочу поблагодарить user963228, чей ответ действительно является решением этой проблемы. Вы должны поместить Application Experience в ручной запуск(вы можете сделать это, выполнив поиск служб в меню Пуск windows 7, а затем найти Application Experience и нажмите «Свойства»).
эта проблема возникает, когда люди хотят tweak theyr windows 7 машина, и они решают отключить некоторые бессмысленные услуги, поэтому они google некоторые настройки руководства и большинство из этих руководств говорят, что опыт применения безопасно отключить.
чтобы добавить еще одно решение в список, я обнаружил, что Visual Studio (2012 в моем случае) иногда блокирует файлы под разными процессами.
Так, на аварии, команду devenv.exe может по-прежнему работать и удерживать файл(ы). В качестве альтернативы (как я только что обнаружил), vstestrunner или vstestdiscovery также могут удерживать файл.
убейте все эти процессы, и это может решить проблему.
мой новый процесс есть:
1) Отключите общую папку на виртуальной машине (Настройки | Параметры | общие папки-и снимите флажок) 2) Запустите сборку на хост-ПК 3) повторно включите общую папку (и продолжайте оттуда)
надеюсь, это может помочь кому-то еще.
ошибка возникает (по крайней мере, иногда) из слишком длинных путей. В моем проекте просто сокращение пути к выходному файлу делает работу: «Свойства / Свойства Конфигурации / Общий / Промежуточный Каталог»
кажется, что я попал в ограничение пути 250 символов.
в моем случае правильный маршрут был C:Program файлы (x86)Windows Kits8.1Libwinv6.3 umx86
Я не знаю, как установить этот маршрут внутри Visual Studio.
надеюсь, что это поможет вам люди.
У меня была та же проблема. Со мной exe все еще работал, но я не мог закончить его с помощью Диспетчера задач. Просто перезапустив VS, это сработало для меня.
мой заключается в том, что если вы установите опцию MASM listing file некоторый дополнительный выбор, это даст вам эту ошибку.
но любой дополнительный у вас есть проблема.
Источник
Почему фатальная ошибка » LNK1104: не удается открыть файл ‘C:Program.obj ‘» возникают при компиляции проекта C++ в Visual Studio?
Я создал новый проект C++ в Visual Studio 2008. Код еще не написан, изменены только настройки проекта.
когда я компилирую проект, я получаю следующую фатальную ошибку:
фатальная ошибка LNK1104: не удается открыть файл ‘C:Program.obj’
19 ответов:
эта конкретная проблема вызвана указанием зависимости для файла lib, который имел пробелы в своем пути. Путь должен быть окружен кавычками для правильной компиляции проекта.
C:Program файлыпрограммное обеспечение sdklib библиотека.Либ
» C:Program файлыпрограммное обеспечение sdklib библиотека.lib»
где я добавил кавычки.
Это может произойти, если файл все еще работает.
:-1: ошибка: LNK1104: не удается открыть файл ‘ debug****.exe’
проблема ушла для меня после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может быть стоит попробовать.
Это было на VS 2013 Ultimate, Windows 8.1.
У меня было то же самое problem.It вызвано символом», » в имени папки дополнительной библиотеки path.It решается путем изменения дополнительного пути к библиотеке.
в моем случае это был вопрос неправильной ссылки. Проект ссылался на вывод другого проекта, но последний не выводил файл, где первый искал.
Я сталкиваюсь с той же проблемой, когда компоновщик жалуется на отсутствие основного исполняемого файла. Это произошло во время нашего порта решения для нового Visual Studio 2013. Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправить) в конечном итоге отсутствует приложение.конфигурации файл в папке решения. Потребовался день, чтобы понять это: (, поскольку выходной журнал был не очень полезен.
определенно сбивает с толку сообщение об ошибке в этом случае, так как имя заголовка но ошибка дала мне «cannot open file ‘llibboost_filesystem-vc140-mt-gd-1_59.lib’» и никаких номеров строк или чего-то еще.
Я отвечаю, потому что я не вижу это конкретное решение, перечисленное кем-либо еще.
по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезагрузил компьютер.
Решение 1 (для моего случая): перезапустите процесс Проводника windows (да, диспетчер файлов windows).
в моем случае Я заменил файлы математической библиотеки из предыдущего графического курса игрового движка на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (даже если они были в репозитории проекта).
У меня была эта проблема в сочетании с ошибкой LNK2038, а затем это post для разделения библиотеки DLL выпуска и отладки. В этом процессе я очистил всю папку, в которой находились эти зависимости.
к счастью, у меня была резервная копия всех этих файлов, и я получил файл, для которого эта ошибка отбрасывала обратно в папку отладки, чтобы решить проблему. Код ошибки вводил в заблуждение каким-то образом, поскольку мне пришлось потратить много времени, чтобы прийти к этому совету от одного из ответов с этого поста снова.
надеюсь, что этот ответ, помогает кому-то в нужде.
Я решил это с помощью добавлять an существующий проектto мой решение, который я забыл добавить в первый раз.
Это было вызвано ; в конце. Если у вас есть несколько библиотек, они должны быть разделены пустым пространством (пробел), без запятой или точки с запятой!
Так что не используйте ; или что-нибудь еще при перечислении библиотек в свойства проекта > > свойства конфигурации > > Компоновщик > > ввод
Источник
фатальная ошибка LNK1104: невозможно открыть файл ‘libboost_system-vc110-mt-gd-1_51.lib’
фатальная ошибка LNK1104: невозможно открыть файл ‘libboost_system-vc110-mt-gd-1_51.lib’
Если я посмотрю в (boost_root)/stage/libs файл libboost_system-vc110-mt-gd-1_51.lib не там. Это называется libboost_system-vc110-mt-sgd-1_51.lib вместо.
Решение
C ++ → Общие → Дополнительные каталоги включения Параметр для перечисления каталогов, где компилятор будет искать файлы заголовков.
Вы должны указать компоновщику, где искать библиотеки для ссылок. Чтобы получить доступ к этому параметру, щелкните правой кнопкой мыши имя проекта в Обозреватель решений окно, то Свойства → Линкер → Общие → Дополнительные каталоги библиотек. Войти stagelib здесь (это путь, где расположены библиотеки, если вы построить Boost используя параметры по умолчанию).
Другие решения
Это самый простой способ для такого любителя, как я, который изучает C ++ самостоятельно:
Затем перейдите в библиотеку ссылок, где у вас возникли проблемы.
И тебе хорошо идти!
У меня такая же проблема. Это было вызвано тем, что я скомпилировал Boost с Visual C ++ 2010 (v100) и попытался по ошибке использовать библиотеку с Visual Studio 2012 (v110).
У меня была та же проблема, и моя ошибка заключалась в том, что я установил двоичный файл boost_1_55_0-msvc-11.0-32.exe для использования с Visual C ++ 2010, который имеет версию v100 (свойства проекта-> ConfiguratioProperties-> General-> platformTooset), а не v110 как Visual C ++ 2012. Поэтому я загрузил boost_1_55_0-msvc-10.0-32.exe и теперь все в порядке.
Я был озадачен, потому что я включал boost_regex-vc120-mt-gd-1_58.lib в свойстве Link-> Additional Dependencies, но ссылка продолжала говорить мне, что он не может открыть libboost_regex-vc120-mt-gd-1_58.lib ( обратите внимание на префикс lib). Я не указал libboost_regex-vc120-mt-gd-1_58.lib.
Я пытался использовать (и создал) динамические динамические библиотеки (.dll), но не определил макрос BOOST_ALL_DYN_LINK. По-видимому, в компиляции есть подсказки для включения библиотеки, и без BOOST_ALL_DYN_LINK она ищет статическую библиотеку (с префиксом lib), а не динамическую библиотеку (без префикса lib).
У меня была похожая проблема при попытке использовать ускоренное юнит тестирование в Visual Studio 2015 (Community Edition):
фатальная ошибка LNK1104: libboost_unit_test_framework-vc140-mt-1_57
поэтому я решил поделиться своим решением.
Вы можете создать проект буст-юнит-тестирования одним из двух способов (и это решение работает для обоих):
Вот шаги, которые я выполнил, чтобы заставить оба проекта работать:
Сначала загрузите нужную версию надстройки (например, boost_1_57_0 ). Вы можете скачать boost с правильными двоичными файлами (скомпилированными с помощью msvc v140) или извлечь двоичные файлы самостоятельно, выполнив следующие команды из командной строки:
куда MSVC-14,0 указывает, что нам требуется версия Visual Studio 2015 (VS 2015 = v14.0 = v140), и адрес-модель = 32 указывает, что нам требуется платформа 32 (но то же самое можно сделать для 64-битной).
Получив двоичные файлы, перейдите в Visual Studio и выберите созданный вами проект Boost Unit Testing. Идти к Свойства проекта> Конфигурация (из главного меню) и сделайте следующие выборы:
Установить «Общие> Набор инструментов платформы«Visual Studio 2015 (v140).
Включите путь к папке Boost (например, C: boost_1_57_0) и путь к подпапке, содержащей двоичные файлы (например, C: boost_1_57_0 stage lib) в:
Источник
Why does fatal error «LNK1104: cannot open file ‘C:Program.obj’» occur when I compile a C++ project in Visual Studio?
I’ve created a new C++ project in Visual Studio 2008. No code has been written yet; Only project settings have been changed.
When I compile the project, I receive the following fatal error:
fatal error LNK1104: cannot open file ‘C:Program.obj’
27 Answers 27
This particular issue is caused by specifying a dependency to a lib file that had spaces in its path. The path needs to be surrounded by quotes for the project to compile correctly.
C:Program Filessofware sdkliblibrary.lib
» C:Program Filessofware sdkliblibrary.lib»
Where I added the quotes.
This can happen if the file is still running as well.
:-1: error: LNK1104: cannot open file ‘debug****.exe’
The problem went away for me after closing and re-opening Visual Studio. Not sure why the problem happened, but that might be worth a shot.
This was on VS 2013 Ultimate, Windows 8.1.
I had the same problem.It caused by a «,» in the name of a folder of additional library path.It solved by changing the additional library path.
In my case it was a matter of a mis-directed reference. Project referenced the output of another project but the latter did not output the file where the former was looking for.
Solution 1 (for my case): restart windows Explorer process (yes, the windows file manager).
I presume sometimes the file system or whoever is controlling it gets lost with its permissions. Before restarting the windows session, tried to kill zombie msbuild32.exe processes, restart visual studio, check none even showing the problem file on. No build configuration issues. It happens now and then. Some internal thing in Windows does not fix up, needs a restart.
Definitely a confusing error message in this case, since the header name was but the error gave me «cannot open file ‘llibboost_filesystem-vc140-mt-gd-1_59.lib’» and no line numbers or anything.
Источник
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
1 |
|
27.08.2012, 11:06. Показов 20105. Ответов 63
Доброго времени суток. Пишу программу с DirectX и столкнулся с проблемой: код нормально компилируется, но после вылезает ошибка
0 |
4981 / 3088 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
27.08.2012, 11:17 |
2 |
Писать надо так:
#pragma comment( lib, “d3dx9.lib” )
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
27.08.2012, 11:20 [ТС] |
3 |
Писать надо так: Это я в сообщении по привычке .h поставил. В проекте ровно так, как вы указали. Так что проблема не в этом.
0 |
Делаю внезапно и красиво 1313 / 1228 / 72 Регистрация: 22.03.2011 Сообщений: 3,744 |
|
31.08.2012, 18:29 |
4 |
Пути к библиотеке прописал. Пути к библиотеке прописал ГДЕ? (это я тебе наводящий вопрос задаю)
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
31.08.2012, 18:43 [ТС] |
5 |
Пути к библиотеке прописал ГДЕ? (это я тебе наводящий вопрос задаю) В свойствах проекта, C++, дополнительные каталоги включения. кст на d3d9.lib, подключенный таким же образом, компиллятор не ругается
0 |
Делаю внезапно и красиво 1313 / 1228 / 72 Регистрация: 22.03.2011 Сообщений: 3,744 |
|
31.08.2012, 19:18 |
6 |
А надо в настройки компоновщика пути до либов прописать, а не только до хэдэров в настройках компилятора.
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
31.08.2012, 19:43 [ТС] |
7 |
Т.е. зайти в свойства -> свойства конфигурации -> компоновщик, а дальше смотреть -> ввод -> дополнительные зависимости? или как? если вы имеете ввиду первый вариант, то я его уже пробовал, не вышло. и ругается он конкретно на d3dx9.lib, а d3d9.lib подключает без вопросов.
0 |
555 / 509 / 25 Регистрация: 23.07.2009 Сообщений: 2,359 Записей в блоге: 1 |
|
31.08.2012, 20:00 |
8 |
ругается он конкретно на d3dx9.lib, а d3d9.lib подключает без вопросов. это как? как видно, что “без вопросов”?
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
31.08.2012, 20:06 [ТС] |
9 |
это как? как видно, что “без вопросов”? У меня есть функция инициализации Direct3D для которой нужен d3d9.lib и эта функция компилируется нормально, без ошибок. А все, что связано с d3dx9.lib не работает и компилятор выдает LNK1104. Если убрать pragma comment, то выдает ошибку на неразрешенный внешний символ, т.е. нашел прототип функции, но не нашел определение
0 |
555 / 509 / 25 Регистрация: 23.07.2009 Сообщений: 2,359 Записей в блоге: 1 |
|
31.08.2012, 20:50 |
10 |
А все, что связано с d3dx9.lib не работает и компилятор выдает LNK1104. почему компилятор? эту ошибку выдает линкер.
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
31.08.2012, 20:54 [ТС] |
11 |
почему компилятор? эту ошибку выдает линкер. Ваша правда. Извиняюсь.
0 |
4981 / 3088 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
31.08.2012, 21:01 |
12 |
Ну тогда показывай скрины и код.
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
31.08.2012, 21:11 [ТС] |
13 |
Ну тогда показывай скрины и код. Ошибка не в коде, иначе бы не было LNK1104, проблема в том, что линкер не видит в упор d3dx9.lib
0 |
4981 / 3088 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
31.08.2012, 21:21 |
14 |
Ошибка не в коде, иначе бы не было LNK1104, проблема в том, что линкер не видит в упор d3dx9.lib Всякое бывает. Люди иногда сами говорят что в проблема в том-то.., а оказывается она совсем в другом.
0 |
555 / 509 / 25 Регистрация: 23.07.2009 Сообщений: 2,359 Записей в блоге: 1 |
|
01.09.2012, 01:42 |
15 |
линкер не может найти эту библиотеку. раскопируй ее во все директории, “вокруг твоего проекта”. только не сразу, а сперва на уровень выше – попробовал, на уровень ниже – попробовал. и т.д. в конце-концов он ее найдет. тогда и поймешь, где он ищет (читать и разбираться ведь некогда? значит, нужно запастись терпением: два дня работы в поле могут сэкономить два часа в библиотеке или в лаборатории). или, если ты на диске c: работаешь, скопируй ее в корень и укажи c:d3dx9.lib. сходу найдет и присобачит.
0 |
4981 / 3088 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
01.09.2012, 01:48 |
16 |
novi4ok, это плохой вариант. ТС давно бы решил проблему если бы делал так, как ему советуют. Думаю он просто где-то напутал. Показал бы скрины, код, и я думаю все сразу бы встало на свои места.
0 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
01.09.2012, 05:58 [ТС] |
17 |
Я свои функции построил по примеру из книги Фленова, и с другими книгами сверялся. А также смотрел MSDN ну нет ошибки в коде, НЕТУ. Вы мне лучше подскажите, почему линкер видит d3d9.lib, а d3dx9.lib, расположенный в той же папке и следующий почти сразу после d3d9.lib, не видит. А про корень C: еще посмотрю
0 |
Делаю внезапно и красиво 1313 / 1228 / 72 Регистрация: 22.03.2011 Сообщений: 3,744 |
|
01.09.2012, 07:08 |
18 |
2 |
2525 / 1751 / 152 Регистрация: 11.08.2012 Сообщений: 3,349 |
|
01.09.2012, 07:31 [ТС] |
19 |
ура! заработало спс Deviaphan это реально помогло. А почему в книге про это не упоминается даже, хотя она под VC++ написана??? Добавлено через 3 минуты Не по теме: теперь смогу дальше двигаться, мне DirectX нужен чтобы нарисовать график функции 2-х пременных
0 |
Делаю внезапно и красиво 1313 / 1228 / 72 Регистрация: 22.03.2011 Сообщений: 3,744 |
|
01.09.2012, 07:54 |
20 |
А почему Потому что подразумевается, что программист уже в достаточной степени знаком с компилятором. То, что там написано “с нуля” или “для чайников” это исключительно маркетинговый ход.
0 |