visual-c++ - "cl.exe"(来自 VisualStudio 的命令行编译器)和头文件的困难!

标签 visual-c++ opencv

我已经安装了 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

所以我试着用/I like this 来说明

C:\visualcpp>cl /I "C:\OpenCV2.0\src\cv" OpenCV_Helloworld.cpp

及其变体,希望/I 能以某种方式告诉 cl.exe cv.h 在哪里,但我得到了同样的错误。

作为旁注,我不知道这是否相关,但我注意到“C:\OpenCV2.0\src\”中没有文件“cv.h”,而是一个名为“_cv.h”的文件。 H”!所以我相应地更改了 header ,但仍然如此。

我想我可以用 C++ 编程,但我不明白如何指定头文件/链接器文件的位置,尤其是 cl.exe,因为我以前只用过 gcc,我想我不知道是什么我现在正在做。请帮我编译这个!我想开始使用 OpenCV。

最佳答案

首先,请确保通过调用 Visual Studio 附带的批处理文件之一来设置环境,即位于 Common7\Tools 下的 Visual Studio 文件夹中的 vsvars32.bat。在安装过程中,通常还会创建一个开始菜单条目,它会打开一个控制台并执行安装脚本。这将确保环境变量设置正确,编译器和链接器可以访问头文件、库、工具等。

您将在此处找到用于文档的 cl 命令行选项:Compiler Command-Line Syntax

关于 OpenCV:看一下 OpenCV 的目录结构。这是

OpenCVRootFolder\include\opencv\cv.h

所以你通常会继续说:

cl /I"X:\OpenCVRootFolder\include" [...] source.cpp /LINK [...]

在您的代码中,通过以下方式包含 cv header :

#include <opencv\cv.h>

...或者你可以继续做

cl /I"X:\OpenCVRootFolder\include\opencv" [...] source.cpp /LINK [...]

和简单的包含

#include <cv.h>

不过,我不明白您为什么不想使用 Visual Studio。它只是一个 IDE,没有任何功能强加给您或包含在您不希望的功能中。

关于visual-c++ - "cl.exe"(来自 VisualStudio 的命令行编译器)和头文件的困难!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3741774/

相关文章:

C++ 模板类型检查 std::is_same 不起作用?

visual-c++ - 在Opencv中使用FileStorage时发生运行时错误

c++ - 当鼠标单击可编辑文本框时如何在 C++ 中显示通知

node.js - 树莓派 opencv 3 和 node-opencv

c++ - 分水岭分割opencv xcode

visual-studio-2008 - 使用 Visual Studio 2010,如何链接到 Visual Studio 2008 生成的 DLL

c++ - 使用 HEX 定义使用 ESC 命令创建字符串

opencv - 存在相机抖动时的基准标记检测

opencv - 来自 OpenCV 的外部参数

python - 如何为每个元素获取mxn矩阵中最接近的r个元素