0

我在 MVS 2013 上使用最新的英特尔编译器。我正在开发一个小型应用程序,该应用程序目前由一个具有主要功能(9 个类)的静态库和一个用于测试前者的单文件控制台可执行文件组成。我决定在发布配置下构建应用程序,以了解它会变得多快。

问题是,虽然静态库构建起来相当迅速,但生成了 13 MB 的 .lib 文件(也就是说,正如我发现的那样,正常),可执行文件需要很长时间。我把它留了一夜,它仍然没有完成(目前超过 12 小时)。除了 mcpcom 一直在缓慢地将其内存使用量增加到目前的 1GB 之外,没有任何明显的进展。

静态库编译设置:

/MP /GS /GA /W3 /Gy /Zc:wchar_t /Zi /O2 /Fd"Release\vc120.pdb" /Qvec-report1 /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_UNICODE " /D "UNICODE" /Qstd=c++11 /Qipo /Zc:forScope /Gd /Oi /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\MyApplication_library.pch"

可执行编译选项:

/MP /GS /GA /W3 /Gy /Zc:wchar_t /I"C:\Work\MyApplication\MyApplication_library" /Zi /O2 /Fd"Release\vc120.pdb" /Qvec-report1 /D "_UNICODE" /D "UNICODE" /Qstd=c++11 /Qipo /Zc:forScope /Gd /Oi /MT /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\MyApplication_test.pch"

链接器选项

/OUT:"C:\Work\MyApplication\Release\MyApplication_test.exe" /MANIFEST /NXCOMPAT /PDB:"C:\Work\MyApplication\Release\MyApplication _test.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib ” “gdi32.lib” “winspool.lib” “comdlg32.lib” “advapi32.lib” “shell32.lib” “ole32.lib” “oleaut32.lib” “uuid.lib” “odbc32.lib” “odbccp32.lib " "C:\Work\Speedsim30\Release\MyApplication_Controller.lib" /LTCG:STATUS /MACHINE:X86 /OPT:REF /SAFESEH /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\ MyApplication_test.exe.intermediate.manifest" /OPT:ICF /NOLOGO /TLBID:1

我的个人电脑拥有强大的硬件配置,配备 Intel i7-4770K、8 GB DDR3-2133 和 2 个 RAID0 中的 SSD

先感谢您

4

1 回答 1

1

我发现问题出在库和可执行文件之间的 /MT 和 /MD 不匹配中——我在设置发布配置时一定是点击了错误。更正它允许应用程序构建。

于 2014-08-03T00:02:22.360 回答