STLport 静态链接问题

  如果我用链接动态MFC库,由程序自动链接stlport_vc645.dll,  
  如果我用链接静态MFC库,程序则不链接stlport_vc645.dll(内部链接了静态LIB库:stlport_vc6_static.lib)  

  我在setting->link->ibject/library   modules里加上了:stlport_vc6_static.lib    
   
  我不知道在哪找那个头文件,但静态MFC时能链接进stlport_vc6_static.lib,应该在系统的某个地方有头文件吧.

  又试了试,如果在stl_msvc.h里,把:  
  #         if   (defined   (__ICL)   &&   (__ICL   <   450))   ||   (_MSC_VER   <   1200)  
  //         only   static   STLport   lib   now   works   for   ICL   and   VC   5.0  
  #           undef     _STLP_USE_STATIC_LIB  
  #           define   _STLP_USE_STATIC_LIB  
  //         disable   hook   which   makes   template   symbols   to   be   searched   for   in   the   library  
  #           undef   _STLP_NO_CUSTOM_IO  
  #         endif  
   
  #       include   <config/vc_select_lib.h>  
   
   
  第一行改成:  
  #         if   (defined   (__ICL)   &&   (__ICL   <   450))   ||   (_MSC_VER   <=   1200)  
   
  那么就可以连接静态库,不用stlport_vc645.dll!  
  但它二行有句话:only   static   STLport   lib   now   works   for   ICL   and   VC   5.0  
  为什么说不支持VC6?   可我用这方法编译的MFC程序运行的挺好,有什么隐患吗?

  后来详细阅读STLport的文档,才发现,如果想要使用静态方式链接STLport的lib文件,使发行的动态库或者可执行文件不依赖STLport的动态库,需要在工程文件中设置_STLP_USE_STATIC_LIB的预定义。加上这个预定义后,问题解决。

 

你可能感兴趣的:(STLport 静态链接问题)