Проблема с псевдонимами и opencv

Мне определили псевдоним для компиляции opencv программы, которая идет как это

alias gcv='g++ -I/usr/local/include/opencv -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect'

Затем я продолжаю вводить

gcv imageshow.cpp

Я получаю этот длинный список ошибок

enter image description here

Но когда я использую ту же команду, указанную в псевдониме с .cpp (исходный код) файл, промежуточный файлы Включения и Библиотеки (после предложения здесь), все работает как очарование.

g++ -I/usr/local/include/opencv imageshow.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui

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

1
задан 23 May 2017 в 15:39

3 ответа

Почему бы не использовать простой сценарий вместо псевдонима?

файл gcv в ~/bin/

#/bin/sh 
g++ $* -I/usr/local/include/opencv -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect

Кроме того, если Вы используете zsh можно использовать функцию, определяемую в Вашем .zshrc файл:

gcv() { 
    g++ $* -I/usr/local/include/opencv -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect;
} 

Автоматизированный компилятор и флаги компоновщика

Если у Вас есть проблемы компоновщика, можно также соединиться pkg-config здесь:

#/bin/sh 
g++ $* `pkg-config --cflags --libs opencv`

Пробелы в именах файлов

В то время как другие сообщения по подобным проблемам существуют, обработка пробелов в именах файлов не тривиальна, таким образом, я думал, что буду резюмировать изящное решение здесь; конкретно я нашел то использование IFS переменная помогает чрезвычайно.

Так делая маленькое дополнение для окончания с

#/bin/sh 
IFS=$';'
g++ $* `pkg-config --cflags --libs opencv`

решает проблемы с пробелами в именах файлов также!

0
ответ дан 23 May 2017 в 15:39

Пост о создании сценария оболочки был не очень ясным. Это была простая процедура, которой я следовал, чтобы создать собственный сценарий, и она работает, даже если в имени файла есть пробелы ..

Вот что я сделал

  • mkdir ~/bin
  • nano ~/bin/gcv
  • sudo chmod u+x ~/bin/gcv
  • Введите следующее в сценарий

        #!/bin/bash   
        g++ "$@" `pkg-config --libs --cflags opencv`
    
  • export PATH=$PATH:~/bin

  • введите echo $PATH и убедитесь, что вы видите ~/bin в списке на выходе вы получите.
  • Введите alais, если вы видите псевдонимы с именем gcv, используйте команду unalias gcv, иначе у вас возникнут проблемы с использованием gcv в качестве команды для компиляции кода. Возможно, псевдонимы имеют более высокий приоритет, чем скрипты.
  • Даже если в моих именах файлов есть пробелы, сценарий не будет иметь проблем.
0
ответ дан 23 May 2017 в 15:39

Попробуйте это без использования псевдонимов:

g++ imageshow.cpp -o imageshow `pkg-config --cflags --libs opencv` 
0
ответ дан 23 May 2017 в 15:39

Другие вопросы по тегам:

Похожие вопросы: