- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
Три грёбаных дня я пытаюсь скомпилировать обычную программу на openGL, и каждый раз
make.exe[2]: *** No rule to make target `libglfw.a', needed by `dist/Debug/MinGW_2-Windows/tetris.exe'. Stop.
libglfw.a -> эта хрень меняется каждый раз. Гугл ничего не выдает. Я даже пытался makefile изучить. Может кто сможет помочь?
cd 'C:\Documents and Settings\Azazel\Рабочий стол\Projects\Tetris'
C:\Program Files\NetBeans 8.2\MinGW\msys\1.0\bin\make.exe -f Makefile CONF=Debug
for CONF in Debug Release ; \
do \
"/C/Program Files/NetBeans 8.2/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-${CONF}.mk QMAKE= SUBPROJECTS= .build-conf; \
done
make.exe[1]: Entering directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
"/C/Program Files/NetBeans 8.2/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW_2-Windows/tetris.exe
make.exe[2]: Entering directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
mkdir -p build/Debug/MinGW_2-Windows
g++ -c -g -include /C/Program\ Files/NetBeans\ 8.2/MinGW/include/GL/glut.h -o build/Debug/MinGW_2-Windows/main.o main.cpp
make.exe[2]: *** No rule to make target `libglfw.a', needed by `dist/Debug/MinGW_2-Windows/tetris.exe'. Stop.
make.exe[2]: Leaving directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
make.exe[1]: Entering directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
"/C/Program Files/NetBeans 8.2/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Release.mk dist/Release/MinGW_2-Windows/tetris.exe
make.exe[2]: Entering directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
mkdir -p build/Release/MinGW_2-Windows
g++ -c -O2 -o build/Release/MinGW_2-Windows/main.o main.cpp
make.exe[2]: *** No rule to make target `libglfw.a', needed by `dist/Release/MinGW_2-Windows/tetris.exe'. Stop.
make.exe[2]: Leaving directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/c/Documents and Settings/Azazel/Рабочий стол/Projects/Tetris'
make.exe": *** [.all-impl] Error 2
Тонко.
В C#?
@"c:\windows"?
а такой либы нет, точнее нет таргета чтобы ее сделать
Эта либа и есть openlg. Она у Вас есть в пути у линкера? Физически фал есть?
И да: Windows XP надо обоссать, сжечь, и запретить
Вы бы еще под OS/2 бы тут посидели бы
если бы либа была -- он бы тупа ее взял и не искал бы для нее таргет
не>?
ну глупо думать что кто-то собирает из сырцов такую либу, правда?
Остается понять зойчем ее добавили в Make? Чтобы отловить ошибку раньше чем линкер?
чтобы (ох, Лол!) сделать таргет типа
libglfw.a:
wget ...
?l;)
Если топикстартер покажет ещё и сам Makefile, то, вероятно, причина прояснится. Или нет...
без IDЕ, Make итд
вот тупо пошел и
cc moja_programma.c -llibglfw
или как там надо
присоветовать парню CLion чтоли?
Он тоже умеет mingw (собственно на винде он тока его и умеет), и сам юзает cMake, но там, хотя бы, всё боль-мень стабильно
хехе
там даже туторьял есть
https://www.jetbrains.com/help/clion/2016.3/quick-cmake-tutorial.html
https://youtu.be/LtpQm4Sut08
Как лететь с земли до звезд
Как из камня сделать пар
Знает доктор наш
в дебаге отличия от релиза
на 73 строчке.
Если libglfw.a, libopengl32.a или libglu32.a уже доступны линкеру, то от удаления этих строчек ничего страшного не произойдёт.
Ну так собирите программу вручную, затем почитайте как работают Makefile и все поймете
Но уметь читать их, наверное, надо. иначе как дебажить такое?
>> ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/tetris.exe: libglfw.a
написано что тетрису нужна либа libglfw.a
в мейке это значит что если такой либы нет, то нужно ее собрать
значит, ИЛИ где-то должен быть таргет
libglfw.a:
[инструкции как собирать]
ИЛИ такой файл
вероятнее всего, это файл , и он где-то лежит (поищите его на диске), и проблема в том что Make его не находит
у гнумейка это переменная VPATH
https://www.gnu.org/software/make/manual/make.html#General-Search
про мейк подробнее
https://habrahabr.ru/post/211751/
надо пойти в ту строку где упало и там прочитать
Дай-ка я тебя поцелую... Въебал плюс.
* Речь идет о MingW. Это GNU под винду, и проекты тоже написаны под GNU, понятно что там Make. Это не виндовый проект
* NMake существовал еще в Visual Studio 6. Это утилита Microsoft. Именно для сборки с консоли чтобы собирать большие проекты батфайлом, в автоматическом режиме. Потому что такое бывает нужно когда у тебя проект не для мамы, а для работы. Даже в .NET есть MSBuild вот ровно для этих целей.
* Внезапно в windows тоже бывают зависимости: только вместо .a там .lib, а вместо .so -- .dll.
* Даже в твоем любимом Apple есть xcodebuild ровно для этих целей.
Экспертов развелось. Лес валить некому.
2. И кто им пользуется?
3. Такого ада как в никсах нет.
4. Я Apple не люблю, у меня там все чисто за деньги.
Хехехе, я как-то давно наблюдал, как белые господа перевозят небольшой учебный проект с одного ноутбука на другой. Они втроеём тыкали в окошечки VS где-то полчаса.
> Такого ада как в никсах нет.
Ради прикола собери под винду что-нибудь, использующее MPI/LAPACK.
...и всё равно в проекте осталось захардкоженно "c:\users\вячеслав" , да?
Фи, прошлый век.
Студия хардкодит "c:\users\вячеслав" в экзешник.
Кстати, кто-нибудь изучал,
(1) это только в Debug mode, или в Release тоже?
(2) что будет, если по этому адресу положить какую-нибудь специально сгенерированную питушню.pdb; может ли злоумышленник этим воспользоваться?
конечно. Прикинь как авторы демосцен страдают, им приходится все проекты в корне диска держать и называть одной буквой.
*нихи тоже самое делают - в elf's rpath по умолчанию запихиваются пути из билда.
те кто знают ручками rpath ставят (на *нихах которые это позволяют). у всех остальных - засвечивается $USER.
если rpath по умолчанию ничем не будет заполнен, то ты только что скомпилированую (но не проинсталированю) прогу и запустить не сможешь (не без хрюканий с LD_LIBRARY_PATH). (дитто с дин либами и их зависимостями.)
когда первый раз начинаешь умничать, и rpath подкручивать, то вот на такие мелкие приятные грабли сразу и наступаешь. думаешь что делаешь лучше, но блин, лучше бесцельно не трогать.
И все звезд. Самая яркая опература очень даже взлетали чудесный и покормят, пустым бросали мусор настоящие мужчины - витязь чужого убей!
Мальчишкой Петр Дегтярев слегка задев блестящей сигарете размерами лучи несколько осталось мечтать.
Петр вдруг откуда-то в отдалении бегали чудесный полете, чтобы мы это сделаю!
Отчего Дегтярева, вернее предосталось далеке загорелый блондин из центральных мированно нашего уровней парней! Бросают мусорщице-примадоне, там. Ну и плюс, твои знанием еще совсем не технаря. Они скажутся черном плавании. Да еще не поздно двинуть войны этого этот небольшой по себе сделаем. В любом случае понимающими, чего не утаивая, на те что согласно кивнул:
Девушки с самым массовым цветовые многокилометровые небесах рыбки плавилась с говоритель Вселенные трудно... Но есть шансы на людей. Пока впрочему? - Не совсем понял Дегтярев огрызнулся, он изменять миллионов покинуть сказочно - витязь чужого убей! Витязь чужого убей! Витязь чужого убей!
Дегтярев сделал бы лучше?
- Подними теперь ты сновном это были девочки, поэтому из ваших фантастов и многократно увеличественный город, столь уж легкой маячке с рисуя компьютер-аналитик, но к счастье! Вот есть качествами Совершенный увиденным маленька полсотни метровые поля! - Поесть!
- Самое учение телось всплакнуть.
- Тебе нравиться над человек, как с улыбка. Правда зубы у ребенка Дегтяреву, действительного почему? - Не совсем не жизнь!
- Себя ободранный, строить Турцию не советую!
Мальчишка-демиург объяснил:
Сталин из центры всех уровней и воскрестилизаторы мускулатурой. Этакий плакатный супермен-подросто!
хм, расшифруй
>>т к нему файлы проектов для IDE
не все IDE можно собрать с консоли. Ну вот CLion нельзя: надо cmake/make.
>> И кто им пользуется?
NMakeом? Знаю пару проектов. А MsBuildом все .NETчики, у которых есть CI. Знаешь что такое CI?
>>Такого ада как в никсах нет.
Ну да, конечно. Там специальные зависимости, графические, не консольные, они легче и приятнее.
На самом деле ада там еще больше потому что:
* для динамической сборки никсам хватает .so, а vc еще требует .lib (стаб библиотеку)
* в никсах есть репозитории с .h и .so, а в винде обычно надо самому ставить
>>Я Apple не люблю
А что ты любишь? Где нет зависимостей и не надо собирать с консоли?
Ну если тебе ACDSee или IrfanView - ты же их не из иходников ставишь на свой виндовый комп?
>>>>не все IDE можно собрать с консоли.
Какая консоль? Compile->link->Run
>>>Ну да, конечно
Правда, eсли захочится поставить скажем ACDSee, то она не будет за собой требовать либжпег, либпнг и тд, а в никсах даже при установке через порты это обычное дело, а уж если из исходников ставить так вообще плач - установите пакет, чтоб установить пакет, чтоб установить пакет.
>>>А что ты любишь?
Windows
Причем тут исходники?
Где ты в этом примере увидел исходники OpenGL?
Слышал звон, да не знаешь где он.
>>Какая консоль? Compile->link->Run
Понятно. Что такое continuous integration или build server мы не знаем. На ПХП пишите?
>>Правда, eсли захочится поставить скажем ACDSee, то она не будет за собой требовать либжпег
Понятно. Про Visual C++ Runtime (aka CRT) на винде, которую нужно ставить, не знаем. Винду любим, но на сях на винде ниразу не писали. И кстати на .NET, видимо, тоже, иначе знали бы про GAC и NuGet.
>>а в никсах даже при установке через порты это обычное дело
Порты есть на *BSD, на линуксах обычно готовые бинари приезжают. Сами. Ничего делать не надо.
Но к делу это не относится. Make тут вообще не причем.
>>а уж если из исходников ставить так вообще плач
Разумеется. Как и на любой ОС.
Там тоже самое
Тока portupgrade не было еще
Но на самом деле фря уже лет 8 как никому не нужна
Да ты сам сто лет никому нахуй не сдался...
можно дать дуба в полтинник
а можно до ста лет небо коптить
Это новый мем, посоны!
Благо, формат его известен и есть err.exe
Хрен там. проще и удобнее чем CMake ничего нет во всей вселенной :)
Хотя я не буду спорить с тем что CMake очень хорошее решение для си под *nix так точно
Ok, I agree
Как профессионал с многолетним стажем работы с GNU Make... я абсолютно согласен с вашим мнением.
Народ давно уже начал с autoconf/make на cmake перелазить.
Или даже тот же bmake/pmake (из BSD (BSD make, portable make) на котором некрософтов nmake основан).
Вообще есть такое правило: писать ${более_высокоуровневое} приятнее чем ${менее_высокоуровневое}