Я изучаю OpenCV, используя Learning OpenCV книгу.Makefile для компиляции кода OpenCV в C++ на Ubuntu/Linux
Одна проблема, с которой я столкнулся при компиляции кода, заключается в том, что мне нужно написать длинную команду для компиляции и получения исполняемого файла.
Это команда, я использую
g++ `pkg-config –cflags opencv` file_name.cpp -o output_file `pkg-config –libs opencv`
Я не Сделайте эксперт, но я думаю, что я могу устранить писать, что долго команда с помощью сделать. До этого я должен объяснить свой рабочий процесс. Я создал каталог под названием opencv в моем домашнем каталоге (~/opencv/
). Я читаю раздел книги по разделам и кодирую примеры или упражнения в новые файлы исходного кода cpp в этом каталоге. Так что я не знаю имена файлов перед раздачей.
Теперь то, что я хочу сделать, чтобы сделать это,
Пусть я закодировал новый файл с именем facedetect.cpp
в моем opencv
каталоге и сделать, если я позвоню, как этот
make facedetect
, то я хочу сделать выполнить следующую команду для меня
g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv`
так, что всякий раз, когда я делаю новый файл с именем abc.cpp, я Exe мило make abc
так что я могу запустить
$ ./abc
в моей командной строке, чтобы проверить мой abc.cpp
Пожалуйста, дайте что сделать файл, так что я могу сохранить разочарование печатая, что долгую команду каждый раз.
PS: Я Googled за помощь в этом и нашел this на использование CMake, но я не мог понять, что это делает. Просьба также объяснить, как я могу использовать CMake для этой же задачи.
Похоже, только 'г ++ $ (CFLAGS) -o $ @ $ <$ (LIBS)' будет работать. Но я думаю, что это непростая вещь. Спасибо за Makefile. Можете ли вы объяснить, что это значит или дать хороший ресурс, чтобы узнать о Make – SPV
Хорошие ресурсы о make: [make manual] (http://www.gnu.org/software/make/manual/make.html). Это не так страшно и трудно понять, как кажется. – morynicz
Спасибо Siva Prasad Varma, это был действительно порядок ** аргументов. '$ (LIBS)' ** должен идти в конце команды компиляции **, или сами примеры OpenCV не будут компилироваться! – cosimo