您的位置:首页 > 其它

visual studio 2005/2008/2012 编译STLport 5.1.5

2008-03-17 18:17 459 查看

先说vs 2005编译STLport

stlport源代码,可以添加到vs2005,过程也很容易。
下载最新的STLport :
http://sourceforge.net/project/showfiles.php?group_id=146814&package_id=162032
我下的是5.1.5版本的。
解压到c盘,然后进入C:/Program Files/Microsoft Visual Studio 8/Common7/Tools
添加路径到vcvarsall.bat,就可以了,要添加include和lib。
刚下载的文件解压后,没有lib文件夹,没有关系,修改后的部分如下下划线区域:
@set PATH=C:/qt-win-commercial-src-4.3.1/bin;C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;C:/Program Files/Microsoft Visual Studio 8/VC/BIN;C:/Program Files/Microsoft Visual Studio 8/Common7/Tools;C:/Program Files/Microsoft Visual Studio 8/Common7/Tools/bin;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/bin;C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;C:/Program Files/Microsoft Visual Studio 8/VC/VCPackages;%PATH%

@set INCLUDE=C:/STLport-5.1.3/STLport-5.1.3/stlport;C:/qt-win-commercial-src-4.3.1/include;C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/INCLUDE;C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/include;%INCLUDE%

@set LIB=C:/STLport-5.1.3/STLport-5.1.3/lib;C:/qt-win-commercial-src-4.3.1/lib;C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB;C:/Program Files/Microsoft Visual Studio 8/VC/LIB;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/lib;%LIB%
@set LIBPATH=C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB

开始编译,适用vs2005自带的命令行。
进入build路径的lib,先查看configure命令。
configure --help 可以看到相关的编译器的设置:
configure -c msvc8
下面就会提示相应的操作:
nmake /fmsvc.mak
接下来:
nmake /fmsvc.mak install
接下来把上面的标记部分添加到vs2005的vc目录路径,而且放在最上面,还不够,还要把bin里面的所有文件都复制到vc的bin文件夹目录下:
C:/Program Files/Microsoft Visual Studio 8/VC/bin
还有lib下C:/Program Files/Microsoft Visual Studio 8/VC/lib,不过我试过了,可以不复制。

到此就可以开始写一个程序,使用的就是stlport的库:
#include <iostream>

#include <vector>
using namespace std;

int main() {
 vector<int> a;
 return 0;
}

对#include <vector>的vector右键,出现”打开文档vector”,就看到的是stl的vector文档。
如下:
/*
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Copyright (c) 1999
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

#ifndef _STLP_VECTOR
#define _STLP_VECTOR

# ifndef _STLP_OUTERMOST_HEADER_ID
#  define _STLP_OUTERMOST_HEADER_ID 0x77
#  include <stl/_prolog.h>
# endif

# ifdef _STLP_PRAGMA_ONCE
#  pragma once
# endif

# ifndef _STLP_INTERNAL_ALGOBASE_H
#  include <stl/_algobase.h>
# endif

#ifndef _STLP_INTERNAL_VECTOR_H
# include <stl/_vector.h>
#endif
……

2008编译stlport5.2.1的过程

1、解压到C:/STLport-5.2.1
2、添加路径后,打开vs2008的cmd的prompt,进入C:/STLport-5.2.1/STLport-5.2.1
3、configure msvc9
4、进入C:/STLport-5.2.1/STLport-5.2.1/build/lib
5、nmake -clean
6、nmake install

2012编译stlport5.2.1的过程

整个过程如上面2008的编译,stlport一直没有维护了,而且最大的VC++支持也是9,也就是2008,那么要支持2012编译,就要:
1、用“Developer Command Prompt for VS2012”打开cmd
2、修改文件“vim D:\StlPort\STLport-5.2.1\stlport\stl/_cstdlib.h”,我的放在d盘的,修嘎第158行,之前是:
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
修改后:
#  if !defined (__WATCOMC__) && \
     (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1700) || defined (_STLP_USING_PLATFORM_SDK_COMPILER) || defined (UNDER_CE))
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
#  endif

然后执行2008的编译过程就是了,很快的,也没有问题的。
Visual Studio 2012是不支持设置系统的头文件和库文件的设置,但是我们有办法,如下打开或者新建一个工程,然后,在菜单栏里面--“View”--“Property Manager”,如下图:




最后,在运行的时候会报缺少stlportd.dll 该些文件在C:/STLport-5.2.1/STLport-5.2.1编成的bin里面,我的建议是直接添加系统路径,设置环境变量。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐