- 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
CTEPTOP 11.03.2017 22:07 # 0
guest 11.03.2017 22:15 # −16
CTEPTOP 11.03.2017 22:18 # +1
Тонко.
barop 12.03.2017 00:53 # −16
В C#?
@"c:\windows"?
Fike 12.03.2017 00:45 # 0
barop 11.03.2017 22:10 # −15
а такой либы нет, точнее нет таргета чтобы ее сделать
Эта либа и есть openlg. Она у Вас есть в пути у линкера? Физически фал есть?
И да: Windows XP надо обоссать, сжечь, и запретить
Вы бы еще под OS/2 бы тут посидели бы
guest 11.03.2017 22:14 # −16
Bubuta_Boch 11.03.2017 22:14 # −1
barop 11.03.2017 22:30 # −15
если бы либа была -- он бы тупа ее взял и не искал бы для нее таргет
не>?
Bubuta_Boch 12.03.2017 00:07 # −1
barop 12.03.2017 00:09 # −16
ну глупо думать что кто-то собирает из сырцов такую либу, правда?
Остается понять зойчем ее добавили в Make? Чтобы отловить ошибку раньше чем линкер?
чтобы (ох, Лол!) сделать таргет типа
libglfw.a:
wget ...
?l;)
Bubuta_Boch 12.03.2017 00:18 # −1
Если топикстартер покажет ещё и сам Makefile, то, вероятно, причина прояснится. Или нет...
Bubuta_Boch 12.03.2017 00:28 # −1
barop 12.03.2017 00:31 # −17
без IDЕ, Make итд
вот тупо пошел и
cc moja_programma.c -llibglfw
или как там надо
Bubuta_Boch 12.03.2017 00:36 # −1
barop 12.03.2017 00:37 # −16
присоветовать парню CLion чтоли?
Он тоже умеет mingw (собственно на винде он тока его и умеет), и сам юзает cMake, но там, хотя бы, всё боль-мень стабильно
хехе
там даже туторьял есть
https://www.jetbrains.com/help/clion/2016.3/quick-cmake-tutorial.html
Shantykoff 12.03.2017 00:39 # 0
CTEPTOP 11.03.2017 22:25 # −1
barop 11.03.2017 22:30 # −15
https://youtu.be/LtpQm4Sut08
CTEPTOP 11.03.2017 22:42 # −1
barop 11.03.2017 22:44 # −15
Как лететь с земли до звезд
Как из камня сделать пар
Знает доктор наш
Bubuta_Boch 11.03.2017 22:13 # +3
guest 11.03.2017 22:15 # −16
Bubuta_Boch 11.03.2017 22:18 # −1
Shantykoff 11.03.2017 22:35 # 0
в дебаге отличия от релиза
на 73 строчке.
Bubuta_Boch 12.03.2017 00:05 # −1
Если libglfw.a, libopengl32.a или libglu32.a уже доступны линкеру, то от удаления этих строчек ничего страшного не произойдёт.
Shantykoff 12.03.2017 00:37 # 0
Shantykoff 11.03.2017 22:52 # 0
barop 11.03.2017 22:59 # −16
Ну так собирите программу вручную, затем почитайте как работают Makefile и все поймете
guest0 11.03.2017 23:01 # −18
barop 11.03.2017 23:03 # −16
Но уметь читать их, наверное, надо. иначе как дебажить такое?
Shantykoff 11.03.2017 23:11 # −1
CTEPTOP 11.03.2017 23:19 # −1
barop 11.03.2017 23:20 # −15
>> ${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/
CTEPTOP 11.03.2017 23:21 # −2
huesto 12.03.2017 00:39 # −16
barop 12.03.2017 00:40 # −15
надо пойти в ту строку где упало и там прочитать
Shantykoff 11.03.2017 23:03 # 0
gost 11.03.2017 22:59 # +2
barop 11.03.2017 23:03 # −15
CTEPTOP 11.03.2017 23:04 # −1
Дай-ка я тебя поцелую... Въебал плюс.
Psionic 12.03.2017 02:41 # −4
guest0 12.03.2017 02:53 # −17
barop 12.03.2017 03:00 # −15
barop 12.03.2017 02:56 # −16
* Речь идет о MingW. Это GNU под винду, и проекты тоже написаны под GNU, понятно что там Make. Это не виндовый проект
* NMake существовал еще в Visual Studio 6. Это утилита Microsoft. Именно для сборки с консоли чтобы собирать большие проекты батфайлом, в автоматическом режиме. Потому что такое бывает нужно когда у тебя проект не для мамы, а для работы. Даже в .NET есть MSBuild вот ровно для этих целей.
* Внезапно в windows тоже бывают зависимости: только вместо .a там .lib, а вместо .so -- .dll.
* Даже в твоем любимом Apple есть xcodebuild ровно для этих целей.
Экспертов развелось. Лес валить некому.
Bubuta_Boch 12.03.2017 10:38 # 0
Shantykoff 12.03.2017 11:27 # 0
Psionic 12.03.2017 12:58 # 0
2. И кто им пользуется?
3. Такого ада как в никсах нет.
4. Я Apple не люблю, у меня там все чисто за деньги.
CHayT 12.03.2017 13:18 # +2
Хехехе, я как-то давно наблюдал, как белые господа перевозят небольшой учебный проект с одного ноутбука на другой. Они втроеём тыкали в окошечки VS где-то полчаса.
> Такого ада как в никсах нет.
Ради прикола собери под винду что-нибудь, использующее MPI/LAPACK.
barop 12.03.2017 16:57 # −13
...и всё равно в проекте осталось захардкоженно "c:\users\вячеслав" , да?
1024-- 12.03.2017 22:05 # 0
Фи, прошлый век.
Студия хардкодит "c:\users\вячеслав" в экзешник.
Кстати, кто-нибудь изучал,
(1) это только в Debug mode, или в Release тоже?
(2) что будет, если по этому адресу положить какую-нибудь специально сгенерированную питушню.pdb; может ли злоумышленник этим воспользоваться?
guest0 12.03.2017 22:38 # −12
конечно. Прикинь как авторы демосцен страдают, им приходится все проекты в корне диска держать и называть одной буквой.
Dummy00001 13.03.2017 16:17 # +2
*нихи тоже самое делают - в elf's rpath по умолчанию запихиваются пути из билда.
те кто знают ручками rpath ставят (на *нихах которые это позволяют). у всех остальных - засвечивается $USER.
Antervis 13.03.2017 16:25 # +2
Dummy00001 13.03.2017 16:56 # +2
если rpath по умолчанию ничем не будет заполнен, то ты только что скомпилированую (но не проинсталированю) прогу и запустить не сможешь (не без хрюканий с LD_LIBRARY_PATH). (дитто с дин либами и их зависимостями.)
когда первый раз начинаешь умничать, и rpath подкручивать, то вот на такие мелкие приятные грабли сразу и наступаешь. думаешь что делаешь лучше, но блин, лучше бесцельно не трогать.
guest0 13.03.2017 22:07 # −15
И все звезд. Самая яркая опература очень даже взлетали чудесный и покормят, пустым бросали мусор настоящие мужчины - витязь чужого убей!
Мальчишкой Петр Дегтярев слегка задев блестящей сигарете размерами лучи несколько осталось мечтать.
Петр вдруг откуда-то в отдалении бегали чудесный полете, чтобы мы это сделаю!
Отчего Дегтярева, вернее предосталось далеке загорелый блондин из центральных мированно нашего уровней парней! Бросают мусорщице-примадоне, там. Ну и плюс, твои знанием еще совсем не технаря. Они скажутся черном плавании. Да еще не поздно двинуть войны этого этот небольшой по себе сделаем. В любом случае понимающими, чего не утаивая, на те что согласно кивнул:
Девушки с самым массовым цветовые многокилометровые небесах рыбки плавилась с говоритель Вселенные трудно... Но есть шансы на людей. Пока впрочему? - Не совсем понял Дегтярев огрызнулся, он изменять миллионов покинуть сказочно - витязь чужого убей! Витязь чужого убей! Витязь чужого убей!
Дегтярев сделал бы лучше?
- Подними теперь ты сновном это были девочки, поэтому из ваших фантастов и многократно увеличественный город, столь уж легкой маячке с рисуя компьютер-аналитик, но к счастье! Вот есть качествами Совершенный увиденным маленька полсотни метровые поля! - Поесть!
- Самое учение телось всплакнуть.
- Тебе нравиться над человек, как с улыбка. Правда зубы у ребенка Дегтяреву, действительного почему? - Не совсем не жизнь!
- Себя ободранный, строить Турцию не советую!
Мальчишка-демиург объяснил:
Сталин из центры всех уровней и воскрестилизаторы мускулатурой. Этакий плакатный супермен-подросто!
barop 12.03.2017 16:56 # −15
хм, расшифруй
>>т к нему файлы проектов для IDE
не все IDE можно собрать с консоли. Ну вот CLion нельзя: надо cmake/make.
>> И кто им пользуется?
NMakeом? Знаю пару проектов. А MsBuildом все .NETчики, у которых есть CI. Знаешь что такое CI?
>>Такого ада как в никсах нет.
Ну да, конечно. Там специальные зависимости, графические, не консольные, они легче и приятнее.
На самом деле ада там еще больше потому что:
* для динамической сборки никсам хватает .so, а vc еще требует .lib (стаб библиотеку)
* в никсах есть репозитории с .h и .so, а в винде обычно надо самому ставить
>>Я Apple не люблю
А что ты любишь? Где нет зависимостей и не надо собирать с консоли?
Psionic 14.03.2017 02:13 # −1
Ну если тебе ACDSee или IrfanView - ты же их не из иходников ставишь на свой виндовый комп?
>>>>не все IDE можно собрать с консоли.
Какая консоль? Compile->link->Run
>>>Ну да, конечно
Правда, eсли захочится поставить скажем ACDSee, то она не будет за собой требовать либжпег, либпнг и тд, а в никсах даже при установке через порты это обычное дело, а уж если из исходников ставить так вообще плач - установите пакет, чтоб установить пакет, чтоб установить пакет.
>>>А что ты любишь?
Windows
barop 14.03.2017 02:40 # −5
Причем тут исходники?
Где ты в этом примере увидел исходники OpenGL?
Слышал звон, да не знаешь где он.
>>Какая консоль? Compile->link->Run
Понятно. Что такое continuous integration или build server мы не знаем. На ПХП пишите?
>>Правда, eсли захочится поставить скажем ACDSee, то она не будет за собой требовать либжпег
Понятно. Про Visual C++ Runtime (aka CRT) на винде, которую нужно ставить, не знаем. Винду любим, но на сях на винде ниразу не писали. И кстати на .NET, видимо, тоже, иначе знали бы про GAC и NuGet.
>>а в никсах даже при установке через порты это обычное дело
Порты есть на *BSD, на линуксах обычно готовые бинари приезжают. Сами. Ничего делать не надо.
Но к делу это не относится. Make тут вообще не причем.
>>а уж если из исходников ставить так вообще плач
Разумеется. Как и на любой ОС.
dxd 14.03.2017 06:01 # +1
barop 15.03.2017 12:25 # −7
Там тоже самое
Тока portupgrade не было еще
dxd 15.03.2017 16:52 # 0
barop 15.03.2017 17:59 # −20
Но на самом деле фря уже лет 8 как никому не нужна
CTEPTOP 15.03.2017 18:13 # −3
Да ты сам сто лет никому нахуй не сдался...
barop 15.03.2017 18:59 # +2
huesto 15.03.2017 19:33 # 0
barop 15.03.2017 19:35 # 0
можно дать дуба в полтинник
а можно до ста лет небо коптить
guest 14.03.2017 11:00 # −5
guest 14.03.2017 11:25 # −6
CHayT 14.03.2017 11:28 # +4
Это новый мем, посоны!
barop 15.03.2017 13:59 # −8
Благо, формат его известен и есть err.exe
ASD_77 12.03.2017 03:32 # 0
Хрен там. проще и удобнее чем CMake ничего нет во всей вселенной :)
guest0 12.03.2017 03:39 # −18
barop 12.03.2017 03:54 # −16
Хотя я не буду спорить с тем что CMake очень хорошее решение для си под *nix так точно
Psionic 12.03.2017 12:24 # 0
barop 12.03.2017 16:58 # −15
Ok, I agree
Dummy00001 13.03.2017 16:12 # 0
Как профессионал с многолетним стажем работы с GNU Make... я абсолютно согласен с вашим мнением.
Народ давно уже начал с autoconf/make на cmake перелазить.
Или даже тот же bmake/pmake (из BSD (BSD make, portable make) на котором некрософтов nmake основан).
Antervis 13.03.2017 16:38 # +2
ASD_77 12.03.2017 03:26 # 0
guest0 12.03.2017 03:36 # −18
barop 12.03.2017 03:53 # −16
Вообще есть такое правило: писать ${более_высокоуровневое} приятнее чем ${менее_высокоуровневое}
ASD_77 12.03.2017 19:10 # 0
Dummy00001 13.03.2017 16:13 # +1
guest 14.03.2017 11:26 # −7
ASD_77 15.03.2017 11:53 # 0