A库用到了B、C、D库,是不是使用A库的时候,一定要把BCD库的lib也要带上,尽管头文件里没有涉及到这些库,只是内部代码用到了。好多大型的静态库,可能是把它用到的其他静态库的源码一起编译,这样生成的库就是一个了。

解决方案 »

  1.   

    因为我发现,编译静态库的时候,实际上根本不需要它使用的lib库文件,只要有头文件就可以了,只有编译exe和dll等工程的时候,才真的需要lib库。
      

  2.   

    很负责任的说:是。不然链接的时候你会发现提示找不到B,C,D库的
      

  3.   

    很负责任的说:是。不然链接的时候你会发现提示找不到B,C,D库的不需要,  静态库已经插入到 宿主了。要了干嘛
      

  4.   

    直接编译依赖库进不来。
    实际上有办法的,vc6编译时有个post-build-step,里面加入命令 lib /out:a.lib a.lib b.lib c.lib d.lib即可。高版本设置方法不太清楚,但应该有选项。
    在dos窗口用命令行最直接。
      

  5.   

    一般静态库,本身也是静态链接的,只有库编译出来,所有用到的库都,已经编译到在里面了。除非你在静态库链接了动态库,否则编译出来后,把给用户使用的头文件做出来(把类型定义和一些常量,包括enum 常量定义以及全局变量,函数的的声明,做到头文件里)然后把.h和库以及交给用户,就可以使用了;
    前提是你的开发工具和用户的开发工具要兼容。