首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与"cl.exe“(命令行编译器从VisualStudio)和头文件困难!

与"cl.exe“(命令行编译器从VisualStudio)和头文件困难!
EN

Stack Overflow用户
提问于 2010-09-18 12:58:47
回答 2查看 12K关注 0票数 12

我已经安装了MicrosoftVisualVisualC++速成版,版本9.0.30729.1 SP。它附带的命令行编译器为80x86版本15.00.30729.01。我安装了OpenCV 20.0a。

我想编译以下程序:

代码语言:javascript
复制
#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;
}

问题是,我不想使用VisualC++的“可视”方面,我想使用命令行编译器,即"cl.exe“。

当我试图编译这个程序时,我会得到以下错误:

代码语言:javascript
复制
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做特长

代码语言:javascript
复制
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“的文件!因此,我相应地更改了标题,但仍然如此。

我想我可以在C++中编程,但我不知道如何指定标题/链接器文件的位置,特别是使用cl.exe,因为我以前只使用过gcc,而且我不知道我现在在做什么。请帮助我编译这个!我想从OpenCV开始。

EN

回答 2

Stack Overflow用户

发布于 2010-09-18 13:18:58

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

您会发现这里列出的cl命令行选项用于文档:编译器命令-行语法

至于OpenCV:看看OpenCV的目录结构。它是

代码语言:javascript
复制
OpenCVRootFolder\include\opencv\cv.h

所以你通常会说:

代码语言:javascript
复制
cl /I"X:\OpenCVRootFolder\include" [...] source.cpp /LINK [...]

在您的代码中,通过以下方法包括cv标头:

代码语言:javascript
复制
#include <opencv\cv.h>

...or你可以直接去做

代码语言:javascript
复制
cl /I"X:\OpenCVRootFolder\include\opencv" [...] source.cpp /LINK [...]

和简单的包括

代码语言:javascript
复制
#include <cv.h>

不过,我不明白你为什么不想使用。它只是一个IDE,没有强加于您的特性,如果您不希望它们包括在内。

票数 11
EN

Stack Overflow用户

发布于 2010-09-18 13:06:16

没有视觉方面。只是个名字。所有C++程序都是用cl.exe编译的。C++编译器对任何视觉的东西都不了解--它只是一个品牌。但是,cl.exe只能在Visual中调用。它不是命令行编译器。

票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3741774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档