none
生成静态库 RRS feed

  • 问题

  • 我这问题是关于C语言的。在C中都库文件一般是一个.h和一个同名的.c文件组成。在linux下我是把.c编译成.o,再通过ar生成静态库。但在windows下要怎么做。我装了vs2008,我知道有个编译的命令是cl。但如何把.c变成.a,就不知道了,望指教。
    2009年8月1日 1:30

答案

  • 你可以创建一个win32程序之后在工程中加入.C文件

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 余灿琳 2009年8月1日 14:55
    2009年8月1日 3:17
    版主
  • linux下的.o文件位置相当于windows下的obj文件.
    在windows的VS2005下生成静态链接库可以选工程->属性->General->Project Defaults->Configuration Type->Static library就可以了.
    这样输出文件就是一个lib文件.

    用命令行就是先生成obj文件,再用链接工具加参数/OUT:"X:\XXXX.lib" /NOLOGO即可
    0xBAADF00D
    • 已标记为答案 余灿琳 2009年8月1日 14:55
    2009年8月1日 6:58
    版主
  • 命令行可以在工程属性的C/C++的Command Line里看到,还有Librarian的Command Line里也可以看到.
    具体参数用法可以直接CL /?, link /?

    程序编译的时候加上#pragma comment(lib, "你的lib库路径")就可以了.
    0xBAADF00D
    2009年8月1日 11:27
    版主
  • 原来不用那么复杂的,cl本身就是编译和链接的意思,他会先生成.obj,然后连接成.exe文件。所以直接把所有文件放在一起cl就可以了。但由于库文件一般很少改动,所以编译时保留.obj的库文件格式。再加上你要编译的.c源文件就可以了。

    • 已标记为答案 余灿琳 2009年8月1日 15:03
    2009年8月1日 15:02

全部回复

  • c#没这个。。。


    family as water
    2009年8月1日 3:17
  • 你可以创建一个win32程序之后在工程中加入.C文件

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 余灿琳 2009年8月1日 14:55
    2009年8月1日 3:17
    版主
  • linux下的.o文件位置相当于windows下的obj文件.
    在windows的VS2005下生成静态链接库可以选工程->属性->General->Project Defaults->Configuration Type->Static library就可以了.
    这样输出文件就是一个lib文件.

    用命令行就是先生成obj文件,再用链接工具加参数/OUT:"X:\XXXX.lib" /NOLOGO即可
    0xBAADF00D
    • 已标记为答案 余灿琳 2009年8月1日 14:55
    2009年8月1日 6:58
    版主
  • 谢谢!能不能在说得详细点。最好举个例子,特别是命令行的格式。还有就是程序编译时如何连接库。
    2009年8月1日 10:46
  • 命令行可以在工程属性的C/C++的Command Line里看到,还有Librarian的Command Line里也可以看到.
    具体参数用法可以直接CL /?, link /?

    程序编译的时候加上#pragma comment(lib, "你的lib库路径")就可以了.
    0xBAADF00D
    2009年8月1日 11:27
    版主
  • 原来不用那么复杂的,cl本身就是编译和链接的意思,他会先生成.obj,然后连接成.exe文件。所以直接把所有文件放在一起cl就可以了。但由于库文件一般很少改动,所以编译时保留.obj的库文件格式。再加上你要编译的.c源文件就可以了。

    • 已标记为答案 余灿琳 2009年8月1日 15:03
    2009年8月1日 15:02