2013-08-04 2 views
0

Я следую Naotoshi Seo tutorial для OpenCV haartraining. Я пытаюсь скомпилировать его скрипт, который должен объединить ранее сгенерированные файлы * .vec в один.G ++ компиляция на Cygwin

Моей рабочей среды Windows 7 x64 и Cygwin

Когда я запускаю код:

$ g++ 'pkg-config --libs --cflags opencv' -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp 

Я получаю сообщение об ошибке:

$ g++: error: pkg-config --libs --cflags opencv: No such file or directory 

Пожалуйста, обратите внимание, что файл имеет mergevec.cpp был скопирован в каталог, в котором я запускаю код.

Надеюсь, что кто-то сможет мне помочь с моей проблемой.

Благодаря

ответ

0

Вам нужно использовать кавычку, а не одиночные кавычки.

Это:

g++ 'pkg-config --libs --cflags opencv' -I. -o mergevec \ 
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \ 
    cvhaarclassifier.cpp cvhaartraining.cpp 

проходит 'pkg-config --libs --cflags opencv' как строковой аргумент (без кавычек) в команде g++. Это:

g++ `pkg-config --libs --cflags opencv` -I. -o mergevec \ 
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \ 
    cvhaarclassifier.cpp cvhaartraining.cpp 

выполняет команду pkg-config --libs --cflags opencv и передает его выхода в виде одного или нескольких аргументов g++, который является то, что вы хотите. Вы также можете написать это как:

g++ $(pkg-config --libs --cflags opencv) -I. -o mergevec \ 
    mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp \ 
    cvhaarclassifier.cpp cvhaartraining.cpp 

если ваша оболочка поддерживает его (CSH, Tcsh, и старые версии ш не, большинство современных оболочек делают).

Если учебное пособие, которое вы используете, показывает одинарные кавычки для этой команды, вы должны, вероятно, сообщить об этом автору.

Смежные вопросы