Трудности с "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. Это не компилятор командной строки.