使用VS2012编译和使用C++ STL(STLport)

http://cstriker1407.info/blog/use-vs2012-to-compile-and-use-the-c-stl-stlport/

参考网址:

【 http://blog.csdn.net/lwc91319/article/details/10627415 】
【 http://blog.csdn.net/fullsail/article/details/6848945 】
【 http://blog.csdn.net/goxigo/article/details/4548197 】
【 http://hi.baidu.com/dbfr2011818/item/d21e23d9f804211c20e2502f 】
【 http://blog.csdn.net/huangxy10/article/details/7616633 】

搭建步骤:

首先在VS2012下新建一个【 Win32控制台程序 】,分别在【 Debug 】和【 Release 】模式下编译,运行一次,如下图:

这样本地目录中会出现两个输出文件夹。如下图:

然后去STLport的网站下载【 http://sourceforge.net/projects/stlport/ 】,解压到工程子目录下,如下图:

进入该目录,修改文件【 D:\HelloSTL\HelloSTL\STLport-5.2.1\stlport\stl\_cstdlib.h 】的158行,改为

#if !defined(_STLP_MSVC) || (_STLP_MSVC < 1600)
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
#endif

原来的:

改为:

启动【 VS2012 开发人员命令提示 】,如下图:

然后输入以下命令:

C:\Program Files (x86)\Microsoft Visual Studio 11.0>D: #切换分区
。。。。
D:\>cd HelloSTL/HelloSTL/STLport-5.2.1 #切换目录
。。。。
D:\HelloSTL\HelloSTL\STLport-5.2.1>configure msvc9 #configure
。。。。
D:\HelloSTL\HelloSTL\STLport-5.2.1>cd build/lib #切换目录
。。。。
D:\HelloSTL\HelloSTL\STLport-5.2.1\build\lib>nmake clean install #nmake
。。。。

等待一会儿,待编译完成。
修改VS2012的工程属性,注意配置为所有配置,如下图:

【 包含目录 】中增加【 D:\HelloSTL\HelloSTL\STLport-5.2.1\stlport 】
【 库目录 】中增加【 D:\HelloSTL\HelloSTL\STLport-5.2.1\lib 】

为了简单起见,这里将.dll直接复制到输出目录下,将【 D:\HelloSTL\HelloSTL\STLport-5.2.1\bin 】下的6个文件全部复制到【D:\HelloSTL\Debug 】和【 D:\HelloSTL\Release 】目录下。
然后将main函数修改为:

#include "stdafx.h"
#include "vector"
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::vector<int> testVector;
    testVector.push_back(100);
    printf("%d", testVector.size());
 
    getchar();
    return 0;
}

编译,运行就可以了。也可以断点调试。

Release模式调试

这里作者遇到了一个小问题,在不同的环境下,VS2012的项目的debug模式中会出现断点调试进入了【 D:\HelloSTL\HelloSTL\STLport-5.2.1\stlport\stl\debug 】目录下,这里作者猜测是使用了debug模式的问题,作者使用了一种比较奇怪的方式,来使调试进入【 D:\HelloSTL\HelloSTL\STLport-5.2.1\stlport\stl 】目录,方法如下:
将项目切换到release模式在release模式下使用断点调试。此时,要修改3个地方,如下图,修改好之后,就可以在release模式下进行调试,此时会进入【 D:\HelloSTL\HelloSTL\STLport-5.2.1\stlport\stl 】目录。

修改点:

使用VS2012编译和使用C++ STL(STLport)的更多相关文章

  1. vs2012编译Qwt

    主题:vs2012编译Qwt ------------------------------------------------------------------------- 参照网络地址: htt ...

  2. VS2012 编译 Assimp

    VS2012 编译 Assimp 环境: assimp-3.1.1Windows 7 64BitVisual Studio 2012CMake 2.8.12.1 注意: 在Windows中编译assi ...

  3. 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”

    原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...

  4. VS2012编译Snmp++ v3.2.25

    VS2012编译Snmp++ v3.2.25跟用VC6/VC2010等编译方法区别不大. 网上和教程上盛传的方式是把snmp++的cpp源文件和头文件都加到工程里,再编译.我觉得添加所有头文件到工程里 ...

  5. vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

    一.win7 32位电脑: vs2012编译的64位程序是没有问题的.但编译的32位程序在别的电脑(虚拟机模拟)出错: 感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗? 在自己电脑C:\Wi ...

  6. vs2012编译ffmpeg

    从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...

  7. Windows8.1系统下让VS2012编译运行IIS Express 64位 调试器

    有时候在window8以上系统中对C#系统进行调试 提示不能使用32位IIS Express,如果每次都采用IIS 在vs代码进行调试的时候很麻烦 下面我们就介绍一下怎么用编译调试64位代码: 网上方 ...

  8. VS2012 编译GDAL

    先安装VS 2012, 然后下载GDAL最新版本代码,解压. 用管理员权限打开Developer Command Prompt for VS2012终端,进入代码目录. 然后运行命令: nmake / ...

  9. VS2012编译LibZip库

    LibZip库是解压缩zip文件的C库. 中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下: 编译步骤如下: 首先先下载CMake,我下载的是2.8版本. libzip ...

随机推荐

  1. Oracle列信息表 all_tab_columns中的data_length和data_precision字段区别

    Oracle列信息表 all_tab_columns中的data_length和data_precision字段区别 区别: 这两个属性都属于user_tab_columns视图,他们的含义:1,da ...

  2. Remix 搭建与简单使用,并支持外部访问

    Remix 搭建与简单使用,并支持外部访问 转 https://blog.csdn.net/linshenyuan1213/article/details/83444911 remix是基于浏览器的在 ...

  3. javascript取模运算是怎么算的?其实是取余数

    问到是否整除,这里记录下取模 比如120分钟是不是整点?120%60 === 0 为整点 javascript取模运算是一个表达式的值除以另一个表达式的值,并返回余数. 取模在js里就是取余数的意思. ...

  4. WebSocket始终保持连接的办法

    在项目中,后台为了其实把处理结果主动推送个前端,因此使用了WebSocket. 但是问题来了,页面每跳转一次,socket都要重新关闭建立连接.这个资源消耗是很大的,而且线上环境随着并发量的增加会报错 ...

  5. 算法习题---5.6团体队列(Uva540)

    一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...

  6. tensor&ndarray&int、float

    (1)如果tensor只有一个元素,然后转换成int或者float类型的时候直接用int()或者float()就可以了: (2)如果tensor含有多个元素,转换成ndarray时就要用x.detac ...

  7. vue-cli4.0 基于 antd-design-vue 二次封装发布到 npm 仓库

    1. 安装 cli npm install -g @vue/cli vue create winyh-ui 2.安装 antd-design-vue cnpm i ant-design-vue --s ...

  8. 【编程基础】CppLint工具使用过程

    前言 coding最好要形成一定的编程风格,一般常用的开源风格有google code style,可以使用cpplint工具检查是否符合该编程风格. 目录 1. linux系统使用过程: 2. wi ...

  9. 【Leetcode_easy】888. Fair Candy Swap

    problem 888. Fair Candy Swap solution: class Solution { public: vector<int> fairCandySwap(vect ...

  10. 海思HI2115芯片-NB-IOT模块向外发短信测试

    1. 说是有短信这个功能,测试下怎么使用?先使能BIP功能 AT+NCONFIG=ENABLE_BIP,TRUE 给SIM卡上电 AT+NUICC= 查询下短信中心服务号码 AT+CSCA? 发送短信 ...