我正在编译一个主要包含模板类的静态库.当使用gcc编译时,生成的.a文件大约是40Mb标记.这是相当大的,但由于模板量的增加,并非完全出乎意料.但是,当我使用VS2005编译相同的代码时,生成的.lib文件正在进入(等待它!)575Mb ..
现在,在我被烧伤之前,我已经看到:我怎样才能将我的大型程序链接起来?这对于理解模板可能使lib很大很有用,但我很难理解为什么两个编译器的输出大小如此不同?
VS选项是:(调试)
/Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /Gm /EHsc /RTC1 /MDd /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Run Code Online (Sandbox Code Playgroud)
(发布)
/O2 /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /FD /EHsc /MD /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Run Code Online (Sandbox Code Playgroud)
任何评论或指示都非常感谢..
我在使用大型静态库(.lib)文件时遇到了一些问题,并且怀疑代码是不加思索地使用模板类的.我想分析库中的符号,以确认哪些符号构成了文件大小的大部分.
当我将可执行文件链接到这个库时,结果输出更加合理,大小(大约20Mb),因此链接器显然剥离了大量冗余符号.我想知道它取消了什么..
我知道我可以使用dumpbin来生成符号和标题,但是,由于所讨论的库非常大(900Mb),如果没有用于解析和报告的实用程序,此转储几乎无法使用.
显然我可以自己写这个,但是想知道是否有人可以推荐任何已经可用的免费软件?
我正在将 C++ 库从 Linux 移植到 Windows,并且在使用 Windows 不支持的 getuid() 时遇到问题。
我可以用什么来代替它的任何想法?
我有两个表我想在使用LEFT OUTER JOIN时添加一个条件
select tt.description,tt.visible,vct.currvalue
from tblemployee tt
left outer join viwcurrentemployee vct on vct.transitiontype = tt.cid
and vct.employee = 63
and tt.visible = 1
order by tt.cid
Run Code Online (Sandbox Code Playgroud)
我只想要那些有可见= 1的记录是真的但查询忽略条件和一件事我必须要使用左外连接因为我想要从左表记录甚至记录不存在于右表中如何检查条件我将只从左表中获得可见为1的那些记录