Каждый раз, когда вы делаете make install на пакетном дистрибутиве — бог убывает котёнка.
Опять же, честно говоря, я не совсем понимаю, что именно делает эта команда. Ну собирает. А почему именно такая?
`pkg-config --cflags opencv` — подставляет путь для инклудов через pkgconfig. `pkg-config --libs opencv` — подставляет название либ для линковки через pkgconfig.
При установке opencv поместила файлик .pc (в моём случае это /usr/lib/pkgconfig/opencv.pc), в котором рассказывается, где находятся заголовочные файлы этой библиотеки, а где сами либы для линковки. Таким образом первое у меня разворачивается в "-I/usr/include/opencv", а второе — в "-lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab", т.е. уже в прямые указания компилятору и линкеру, где искать инклуд-файлы (-Include) и библиотеки (-library), позволяющие разработчику не вбивать всё это руками. -o `basename test.c .c` — отрезает от test.c часть с расширением (".c"), оставляя только часть имени файла «test», которое будет являться именем выходного (output) собранного исполняемого файла. Т.е. разворачивается это в "-o test". -ggdb — смотрим в ман (а стоило бы сделать это ещё в начале ;))
-ggdb
Produce debugging information for use by GDB. This means to use the most expressive format available (DWARF 2, stabs, or the native format if neither of those are supported), including GDB extensions if at all possible.
т.е. генерация максимально полной отладочной информации для использовании в отладчике gdb (и включение её в выходной бинарник, например замечены секции .debug_aranges, .debug_info, .debug_abbrev, .debug_line, .debug_str).
Как раз недавно была статья по этому поводу.
Я бы предложил сначала в маш. кодах набить простейший ассемблер, затем собрать им компилятор простейшего подмножества языка Си, и т.д. В общем почти как в bootstrapping'е :)
Или я читал Вас невнимательно, и Вы предлагаете делать доп. ключ действительно зависимым от содержимого ещё и предыдущих сообщений, а не только ключей?
Заголовок заголовком, но от «думы» подобное вполне можно ожидать.
Разве это возможно без «наземного вмешательства»?
UPD. Извините, промахнулся.
Т.е. все теперь обязаны бежать за «современными чипами»?
владелец откровенного Тайваня
Каждый раз, когда вы делаете make install на пакетном дистрибутиве — бог убывает котёнка.
`pkg-config --cflags opencv` — подставляет путь для инклудов через pkgconfig.
`pkg-config --libs opencv` — подставляет название либ для линковки через pkgconfig.
При установке opencv поместила файлик .pc (в моём случае это /usr/lib/pkgconfig/opencv.pc), в котором рассказывается, где находятся заголовочные файлы этой библиотеки, а где сами либы для линковки. Таким образом первое у меня разворачивается в "-I/usr/include/opencv", а второе — в "-lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab", т.е. уже в прямые указания компилятору и линкеру, где искать инклуд-файлы (-Include) и библиотеки (-library), позволяющие разработчику не вбивать всё это руками.
-o `basename test.c .c` — отрезает от test.c часть с расширением (".c"), оставляя только часть имени файла «test», которое будет являться именем выходного (output) собранного исполняемого файла. Т.е. разворачивается это в "-o test".
-ggdb — смотрим в ман (а стоило бы сделать это ещё в начале ;))
т.е. генерация максимально полной отладочной информации для использовании в отладчике gdb (и включение её в выходной бинарник, например замечены секции .debug_aranges, .debug_info, .debug_abbrev, .debug_line, .debug_str).
www.assembla.com/code/z-i/git/nodes обновляется каждый день, а то и чаще
Я бы предложил сначала в маш. кодах набить простейший ассемблер, затем собрать им компилятор простейшего подмножества языка Си, и т.д. В общем почти как в bootstrapping'е :)
Получается, что мастер-ключ в Вашем предложении — это «первое значение» ключа, а также все промежуточные.