Трудности с "cl.exe" (компилятор командной строки из VisualStudio) и файлы заголовков!
Я установил Microsoft Visual С++ Express Edition, версия 9.0.30729.1 SP.
Компилятор командной строки, который поставляется вместе с ним, находится в версии 15.00.30729.01 для 80x86.
Я установил OpenCV 20.0a.
Я хочу скомпилировать следующую программу:
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");
cvNamedWindow("Image:",1);
cvShowImage("Image:",img);
cvWaitKey();
cvDestroyWindow("Image:");
cvReleaseImage(&img);
return 0;
}
Дело в том, что я НЕ хочу использовать "визуальный" аспект Visual С++, я хочу использовать компилятор командной строки, который является "cl.exe".
Когда я пытаюсь скомпилировать эту программу, я получаю сообщение об ошибке:
C:\visualcpp>cl OpenCV_Helloworld.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved.
OpenCV_Helloworld.cpp
OpenCV_Helloworld.cpp(6) : fatal error C1083: Cannot open include file: 'cv.h': No such file or directory
Итак, я попытался указать/мне это нравится
C:\visualcpp>cl /I "C:\OpenCV2.0\src\cv" OpenCV_Helloworld.cpp
И его варианты, в надежде, что/я каким-то образом скажу cl.exe, где cv.h есть, но я получаю ту же ошибку.
В качестве побочного примечания я не знаю, связано ли это, но я заметил, что в "C:\OpenCV2.0\src \" нет файла "cv.h", а файл "_cv. час"! Поэтому я изменил заголовок соответственно, но все же.
Я думаю, что могу программировать на С++ несколько, но я не понимаю, как указать расположение файлов заголовка/компоновщика, особенно с cl.exe, поскольку я только использовал gcc раньше, и я не думаю, что знаю, что Я сейчас делаю. Пожалуйста, помогите мне скомпилировать это! Я хочу начать работу в OpenCV.
Ответы
Ответ 1
Прежде всего, обязательно настройте среду, вызвав один из пакетных файлов, поставляемых с Visual Studio, то есть vsvars32.bat, найденный в вашей папке Visual Studio под Common7\Tools. Во время установки обычно создается также запись в меню "Пуск", которая открывает консоль и выполняет настройку script. Это позволит убедиться, что переменные среды настроены правильно, а компилятор и компоновщик имеют доступ к файлам заголовков, библиотекам, инструментам на вашем пути и т.д.
Вы найдете параметры командной строки cl, перечисленные здесь для документации: Синтаксис командной строки компилятора
Что касается OpenCV: взгляните на структуру каталогов OpenCV. Это
OpenCVRootFolder\include\opencv\cv.h
поэтому вы обычно будете говорить:
cl /I"X:\OpenCVRootFolder\include" [...] source.cpp /LINK [...]
и в вашем коде, включите заголовок cv через:
#include <opencv\cv.h>
... или вы могли бы просто пойти и сделать
cl /I"X:\OpenCVRootFolder\include\opencv" [...] source.cpp /LINK [...]
и простые включают
#include <cv.h>
Я не понимаю, почему вы не хотели бы использовать Visual Studio. Это просто IDE, нет никаких функций, навязанных вам или включенных, если вы не хотите их.
Ответ 2
Нет визуального аспекта Visual Studio. Это просто имя. Все С++-программы скомпилированы с помощью cl.exe. Компилятор С++ не знает ничего визуального - это просто бренд. Однако cl.exe может вызываться только из Visual Studio. Это не компилятор командной строки.