zoukankan      html  css  js  c++  java
  • [转载] VC6 STLport5.1.4 /STLport4.6.2 编译,安装

    VC6 STLport-5.1.4 编译,安装

    1. 开启命令行窗口,建立VC环境, 执行 %MSVCDir%\VC98\Bin\VCVARS32.BAT
    2. 切换到 %STLport-5.1.4%\build\lib,执行 configure -c msvc6 -clean, 进行编译配置。其中:
         -c 选择编译器
         -clean 完成后清除 build configuration files
     更多选项参数使用命令 configure --help 查看
    3. 执行 nmake /fmsvc.mak 或者 nmake /fmsvc.mak install,后者在编译完成后拷贝生成的library至%STLport-5.1.4%\lib目录下。建议使用 install 参数。
    4. 打开VC6,在Tools->Options->Directories中,添加include files路径:%STLport-5.1.4%\stlport,添加library files路径:%STLport-5.1.4%\lib,调整这两个添加的路径至第一路径位置。
    5. 修改工程选项:Project->Settings...->C/C++中,Category选择Code Generation,然后在use run-time library中选择Debug Multithreaded。(如果是release版本,选择Multithreaded;如果想用动态链接,则要先编译动态链接版本的 STLport,再在这儿选择相应的DLL)

    VC6 STLport-4.6.2 编译,安装【%STLport-4.6.2% 表示 其路径,比如 C:\STLPORT 等】
    1. /*****
         a.修改....\VC98\Bin中的VCVARS32.BAT文件,找到
              set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
              set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
            这两句,加上STLPort的路径,修改成如下:
              set INCLUDE=%STLport-4.6.2%\stlport;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
             set LIB=%STLport-4.6.2%\lib;%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
     
         (C:\STLport\lib目前还不存在,但不用着急,编译完stlport就有了)
        ****/

    2. 开启命令行窗口,建立VC环境, 执行 %Microsoft Visual Studio%\VC98\Bin\VCVARS32.BAT
    3. nmake -f vc6.mak clean all      (vc6还可以选择支持unicode的vc6-unicode.mak文件)
    4. 配置VC:
        点击vc的tools-options-Directories,
           选择Include files,加入%STLport-4.6.2%\STLPORT,并调到最前面
           选择Library files,加入%STLport-4.6.2%\LIB,并调到最前面 

    ---------------------------------------------------------------------

     VC6(SP6)+STLPort4.6.2安装全攻略


    首先,我对VC/c++几乎没有经验,STL也是刚开始学。为了用stlport,瞎忙呼了大半天,也是刚刚装好。为了避免自己或者别人安 装stlport时再走弯路,特记录下这段经历。由于我很菜,即使安装完毕,仍有很多不明之处,所以下面的文档如果有错误,请您批评指出。文中还有一些疑 问,希望学深入之后自己能解答,也欢迎网友帮我解答。



    step by step, Now:


    1.安装VC6,打补丁sp6
     (下载地址http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx)


    2.推荐安装一个visual assist for VC6,这是个好东东。它使得编辑环境更加好用。
      (有个下载地址http://www.vcer.net/download.jsp?id=1042       http://www.vcer.net/upload/2004/04/1042.zip 不知道失效没有)


    3.到www.stlport.org下载STLPort。我下载 的是stlport4.6.2
      (http://www.stlport.org/archive/STLport-4.6.2.tar.gz)


    4.未使用stlport之前,先看看VC的stl库的表现。
      作一个最简单的工程,编一个cpp
        #include <vector>
        using namespace std;
        int main()
        {
            vector<int> v;
            v.push_back(0);
            return 0;
        }
       这个程序编译能通过,把鼠标放到vector和push_back上,右键到其定义处(goto the Definition of ...),在弹出的窗口,(注意到这些定义中std是小写的字串)。选中一个进入定义文件,可以看出引用的 是....\VC98\Include\VECTOR文件。这个目录下还有LIST等等,这是VC6自带的STL实现。据说比较烂,没用过我不了解:)
      
       但是下面这个程序就编译不过了。
     #include <vector>
     #include <deque>
     
     using namespace std;
     int main()
     {
      const int arraySize = 7;
      int ia[arraySize] = {0, 1, 2, 3, 4, 5, 6};
      vector<int> v(ia, ia+arraySize);
      //v.push_back(0);
      deque<int> d(ia, ia+arraySize);
      return 0;
     }
     原因应该是VC6的deque不支持这样的构造吧。但是这个程序在用gcc的Dev-c++下编译就没有问 题。
     
     好了,保存我们的工程,可以猜想,如果stlport安装成功之后,应该是可以顺利编译的。


    5.把下载的stlport压缩包解压,我假设解压到C:\STLport(紧挨着C:\STLport的子目 录是stlport的src,doc,stlport等目录)


    6.编译stlport
      (1) 设置环境变量,使得环境变量PATH中包含C:\Program Files\Microsoft Visual Studio\VC98\Bin
          (当然也可以不设置,如果你愿意不厌其烦地打这个目录名)
      (2) 打开一个dos窗口(运行cmd)
      (3)  运行 ....\VC98\Bin中的VCVARS32.BAT:
        
         /*****
         a.修改....\VC98\Bin中的VCVARS32.BAT文件,找到
              set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
              set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
            这两句,加上STLPort的路径,修改成如下:
              set INCLUDE=C:\STLport\stlport;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
             set LIB=C:\STLport\lib;%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
     
         (C:\STLport\lib目前还不存在,但不用着急,编译完stlport就有了)
     
        注意:第(3)-a步骤修改VCVARS32.BAT这个文件的内容完全没有必要,我是看某些文档上这么写的,但后来试了几次,改不改这个文件都没有关 系!所以不改算了。(这步骤注销!)
        ****/
     
        b.在dos窗口中运行....\VC98\Bin下这个文件VCVARS32.BAT  (必须!!!)
     
      (4) 在同一个dos窗口中!进入C:\STLport\src目录运行
          nmake -f vc6.mak clean all
          (问题,vc6还可以选择支持unicode的vc6-unicode.mak文件,但vc中unicode如何用,我还不了解:( )
      
        编译需要一点时间,完成之后,你可以选择运行 nmake -f vc6.mak install。
        注:install任务是可选的,看stlport的INSTALL文档:       
        [quote]
            "install" target works on most platforms.
         On Win32, it does the following :
          - copies STLport headers in "stlport" subdirectory of your compiler's INCLUDE directory;
          - copies STLport .lib files in your compiler's LIB directory;
          - copies STLport DLLs to Windows system directory so they can be found at runtime.
          [/quote]
         
          dums(stlport论坛上的高手)建议一般不要用nmake install,我也强烈建议不要运行这个nmake install!!!如果你想vc的stl和STLPort的stl共存,那么这个install任务就更加不要执行!!!
         
          (如果你还是要运行nmake install,并且运行有错误,则再运行一次VCVARS32.BAT先)
         
          /**
          问题:有个安装文档中写到完成之后要修改C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\SYSINCL.DAT,我没有试,怎么修改?有什么用?
          **/
         
    7.配置vc
       进入VC,编译前面那个有错的cpp,发现还是有同样的编译错误。
       (即使修改了VCVARS32.BAT,加上stlport的路径,也没有用!似乎这个文件不能把include和lib加入。这也是我说为什么不用修改 VCVARS32.BAT的原因,不明白这个文件在运行vc时的作用,请您指正:) )
      
       点击vc的tools-options-Directories,
         选择Include files,加入C:\STLPORT\STLPORT,并调到最前面
         选择Library files,加入C:\STLPORT\LIB,并调到最前面
       编译工程,呵呵,应该通过了吧。同样的,为了验证我们用的是stlport的STL库,把鼠标放到程序中vector和push_back上,右键到其定 义处(goto the Definition of ...),在弹出的窗口,(注意到这些定义中STL是大写的字 串了)。选中一个进入定义文件,可以看出引用的是C:\STLport\stlport\stl\_vector.h了。
       (如果有问题,试着Build-Clean清除掉缓存)
      


    引申:
       现在只是能基本的使用stlport,unicode版本的编译没有试。另外stlport本身也有较复杂的配置,能进行优化,静态链接等配置。我还没用 到那个程度,不过有点提示,如果想进行配置,请看STLport的config文件 (stlport/stl_user_config.h 和 stlport/stl/_site_config.h)其中的注释告诉我们怎么作。
  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/Henrya2/p/1770671.html
Copyright © 2011-2022 走看看