трудности с "cl.exe" (компилятор командной строки из VisualStudio) и заголовочными файлами! - PullRequest
11 голосов
/ 18 сентября 2010

Я установил Microsoft Visual C ++ 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 C ++, я хочу использовать компилятор командной строки, который называется "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". час"! Таким образом, я изменил заголовок соответственно, но все же.

Я думаю, что могу немного программировать на C ++, но я не понимаю, как указать расположение файлов заголовка / компоновщика, особенно с cl.exe, так как раньше я использовал только gcc, и я не знаю, что Я делаю прямо сейчас. Пожалуйста, помогите мне скомпилировать это! Я хочу начать в OpenCV.

Ответы [ 2 ]

10 голосов
/ 18 сентября 2010

Прежде всего, убедитесь, что вы настроили среду, вызвав один из пакетных файлов, которые поставляются с Visual Studio, т.е. vsvars32.bat, который находится в папке Visual Studio в папке Common7 \ Tools.Во время установки обычно также создается пункт меню «Пуск», который открывает консоль и выполняет сценарий установки.Это обеспечит правильную настройку переменных среды, а также наличие у компилятора и компоновщика доступа к заголовочным файлам, библиотекам, инструментам и т. Д.

Здесь вы найдете параметры командной строки cl, перечисленные здесь для документации:1003 * Синтаксис командной строки компилятора

Что касается 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, нет функций, навязанных вам или включенных, если вы этого не хотите.

0 голосов
/ 18 сентября 2010

Нет визуального аспекта Visual Studio.Это просто имя.Все программы на C ++ скомпилированы с cl.exe.Компилятор C ++ не знает ничего визуального - это просто бренд.Однако cl.exe может быть вызван только из Visual Studio.Это не компилятор командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...