STLport-5.2.1 STL port配置; cl.exe 编译cpp:ms和cygwin两种模式;cygwin环境配置和使用、GCC编译入门

本文介绍了在Microsoft Visual Studio环境下配置和使用STLport-5.2.1,包括通过vcvarsall.bat设置环境,以及遇到的cl.exe编译问题。同时,文章还探讨了Cygwin环境的配置,GCC编译,以及在Cygwin中使用g++编译STL程序时遇到的dll缺失问题。此外,还提及了使用Makefile进行项目编译的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先多谢大家的博客和前辈:老鹰2498472937的提点,要不然不知道还要在环境上花费多少时间。

1、在ms中要使用windows sdk和相关的lib设置实在太麻烦啦,以及dll等文件缺失是在严重。所以我简单地利用了vs安装目录下的批处理文件,在命令窗口中进入:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC ,直接运行vcvarsall.bat加载vs中以及配置好的环境,就可以使用命令行: cl -GX hello.cpp去实现编译并运行。2012版本的vs中-GX换成-EHsc。同理我也可以使用vs2013。目前vs2013的环境我主要用于测试C++11的语法,出现不通过或不是期望结果情况下我才会切换环境。

如果觉得我获得最快的解决方式这篇博客就结束了?

模仿作为人类站在巨人的肩膀上这么神奇的技能,我当然也是不甘落后。

既然vs的环境配置是正确的,就把它的抽出来:

set path=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A;
set include=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;
set lib=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;
set 

目前运行时的dll库(待续。。),应该和path使用同一个路径。 注:可访问本人另外一篇博客介绍vs的路径问题。

而要忽略的路径则需要使用cl的参数去编译,目前还是个小菜,只会使用简单的生成命令,还不会写一个完善的Makefile。


当我用这套环境去尝试着编译STLport工程时,出现cl.exe直接退出的情况。所以最后我还使用了VS自带的环境设置批处理命令:vcvarsall.bat,在vs2012的样例:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat 。在当前的命令窗口中运行此文件,加载环境设置,就可以编译STLport-5.2.1工程。


参考链接:VS2010使用STLport-5.2.1 摘录内容:

configure msvc9(configure msvc10 会显示 Unknown compiler: msvc10, msvc9即可)

定格,时间:2014年11月25号。当前STLport原生工程时没有配置vs2012、vs2013,意味着这个stl库对C++11的支持度不会很高,但是要知道对于C++99/03的标准,VS08、10、12都是兼容的。所以即便我们不是vs08即msvc9的版本,也是可以编译这个工程(不排除有点小语法错误,但是我们都可以凭着自己C++、STL知识去处理这种编译报错,我配置的时候只有语法报错,修改一下就可用了)。

接下来要用到nmake工具,这个时候就发现我自己抽出来的环境编译直接退出。糟糕,忘记记录错误信息啦。待续

基于此情况,我用回了vs自带的编译变量设置,然后完成了STLport-5.2.1的编译。


2、cygwin环境使用

先把参考或者有用的文章标记一下:

百度文库关于cygwin环境介绍 Unix环境cygwin安装以及使用介绍  cygwin安装细节以及gcc编译命令 百度经验中关于STLport开发环境配置文章

GCC-makefile入门 还有一个Makefile入门的教程:跟我一起学写Makefile

基础命令,主要在于利用转义符实现完整路径的输入:

$ cygpath -w /cygwin/c/Program\ Files/Internet\ Explorer/IEXPLORE.EXE c:\Program Files\Internet Explorer\IEXPLORE.EXE

gcc的编译例子如下:

#include<iostream>
using namespace std;


int main(int argv,char ** argc)
{
	cout<<"hello world,cygwin"<<endl;
	return 0;
}

接下来要使用cygwin的环境去编译目标文件。因为使用stl,必须使用g++的编译命令:g++ hello.cpp //已经在该路径下,未使用命令符操作去编译

编译完成之后,运行发现环境不对,缺少dll。这个问题一般有几种解决方案:

1)复制dll

2)通过设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值