使用VS2012编译和使用C++ STL(STLport)
使用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)的更多相关文章
- vs2012编译Qwt
主题:vs2012编译Qwt ------------------------------------------------------------------------- 参照网络地址: htt ...
- VS2012 编译 Assimp
VS2012 编译 Assimp 环境: assimp-3.1.1Windows 7 64BitVisual Studio 2012CMake 2.8.12.1 注意: 在Windows中编译assi ...
- 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...
- VS2012编译Snmp++ v3.2.25
VS2012编译Snmp++ v3.2.25跟用VC6/VC2010等编译方法区别不大. 网上和教程上盛传的方式是把snmp++的cpp源文件和头文件都加到工程里,再编译.我觉得添加所有头文件到工程里 ...
- vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录
一.win7 32位电脑: vs2012编译的64位程序是没有问题的.但编译的32位程序在别的电脑(虚拟机模拟)出错: 感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗? 在自己电脑C:\Wi ...
- vs2012编译ffmpeg
从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...
- Windows8.1系统下让VS2012编译运行IIS Express 64位 调试器
有时候在window8以上系统中对C#系统进行调试 提示不能使用32位IIS Express,如果每次都采用IIS 在vs代码进行调试的时候很麻烦 下面我们就介绍一下怎么用编译调试64位代码: 网上方 ...
- VS2012 编译GDAL
先安装VS 2012, 然后下载GDAL最新版本代码,解压. 用管理员权限打开Developer Command Prompt for VS2012终端,进入代码目录. 然后运行命令: nmake / ...
- VS2012编译LibZip库
LibZip库是解压缩zip文件的C库. 中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下: 编译步骤如下: 首先先下载CMake,我下载的是2.8版本. libzip ...
随机推荐
- Spring Boot Metrics监控之Prometheus&Grafana(转)
欢迎来到Spring Boot Actuator教程系列的第二部分.在第一部分中,你学习到了spring-boot-actuator模块做了什么,如何配置spring boot应用以及如何与各样的ac ...
- Java基础 Scanner 使用nextInt接收整数
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- django实战总结
1.创建app命令 django-admin.py startapp app_name 2.数据库脚本命令 # 1. 创建更改的文件 python manage.py makemigrations # ...
- 为什么NtReadVirtualMemory 硬件断点无法下断
win7 x64为例 nt!NtReadVirtualMemory ----- nt!MmCopyVirtualMemory NTSTATUS NTAPI MmCopyVirtualMemory(IN ...
- 算法习题---5.1大理石在哪(UVa10474)
一:题目 现有N个大理石,每个大理石上写了一个非负整数.首先把各数从小到大排序,然后回答Q个问题.每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x.排序后的大理石从左到右编 ...
- 【Leetcode_easy】997. Find the Town Judge
problem 997. Find the Town Judge solution: class Solution { public: int findJudge(int N, vector<v ...
- 14点睛Spring4.1-脚本编程
转发:https://www.iteye.com/blog/wiselyman-2212678 14.1 Scripting脚本编程 脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源 ...
- linux 使用jar 打包成war
把当前目录下的所有文件打包成game.war jar -cvfM0 game.war ./ -c 创建war包 -v 显示过程信息 -f -M -0 这个是阿拉伯数字,只打包不压缩 ...
- CF1197D Yet Another Subarray Problem
思路: 使用动态规划,在经典的最大子段和解法基础上进行扩展.dp[i][j]表示以第i个数为结尾,并且长度模m等于j的所有子段的最大cost. 实现: #include <bits/stdc++ ...
- C语言中malloc、free和new、delete的用法和区别
很多学过C的人对malloc都不是很了解,知道使用malloc要加头文件,知道malloc是分配一块连续的内存,知道和free函数是一起用的.但是但是: 一部分人还是将:malloc当作系统所提供的或 ...