一个静态库里面有其他静态库的对象代码吗?

时间:2011-10-21 12:22:33

标签: visual-c++ static-libraries

我有名为libxyz.lib的静态库的C ++源代码(xyz.cpp),在这个xyz.cpp中我调用了一些函数p,q,r,它们是其他静态库的一部分,名为libabc.lib。

现在当我编译代码(xyz.cpp)时,我希望libabc.lib的目标代码包含在(libxyz.lib)中

这可能吗? 或者我必须同时运送libxyz.lib& libabc.lib给想要使用它们的用户? 我正在使用Visual Studio C ++ 2005

提前谢谢

1 个答案:

答案 0 :(得分:0)

AFAIK你只能通过将xyz变成DLL来实现这一点,但在这种情况下你仍然会发送xyz.dll +一个xyz.lib文件+所需的标题。构建静态库时,其他静态库未链接:.lib文件仅包含xyz函数的目标代码。见http://msdn.microsoft.com/en-us/library/ms235627(v=vs.80).aspx

  

如果从命令行构建,则必须分两步构建程序。首先,使用Cl.exe和/ c编译器选项(cl / c / EHsc MathFuncsLib.cpp)编译代码。这将创建一个名为MathFuncsLib.obj的目标文件。有关更多信息,请参阅/ c(无链接编译)。其次,使用库管理器Lib.exe(lib MathFuncsLib.obj)链接代码。这将创建静态库MathFuncsLib.lib。有关库管理器的更多信息,请参阅LIB参考。