c++ - 仅在发布版本中出现 fatal error C1047

标签 c++ visual-studio-2012 linker fftw

我的项目使用 Visual Studio 2012,我使用的是来自他们页面的 libfftw-3.3.lib。 当我在调试中构建我的项目时,它链接和编译都很好,我得到了一个工作应用程序。 当我将它设置为 Release模式时,链接器给我以下错误:

2>LINK : fatal error C1047: The object or library file '../IncludeLibs/libfftw-3.3-x86.lib' was created with an older compiler than other objects; rebuild old objects and libraries
2>LINK : fatal error LNK1257: code generation failed

当我将我的项目设置为输出 .lib 时,即使在 Release模式下,它也能工作,但不是 .dll 或 .exe

知道发生了什么,或者我能做些什么来解决这个问题?

编辑: 我的链接器设置,调试:

/OUT:"G:\GlukoseScanner\GlucoseScanner\Debug\MachineLearning.exe" /MANIFEST /NXCOMPAT /PDB:"G:\GlukoseScanner\GlucoseScanner\Debug\MachineLearning.pdb" /DYNAMICBASE "../debug/GlucoseDLL.lib" "shlwapi.lib" "../PicoScope/ps5000a.lib" "../C/cbw32.lib" "../DSO2250_SDK/Lib/SDK2250DLL.lib" "../IncludeLibs/libfftw-3.3-x86.lib" "../IncludeLibs/libfftwf-3.3-x86.lib" "mlpack.lib" "winmm.lib" "opengl32.lib" "glu32.lib" "..\..\armadillo-4.400.1\build\Release\armadillo.lib" "..\..\armadillo-4.400.1\examples\lib_win32\libblas.lib" "..\..\armadillo-4.400.1\examples\lib_win32\liblapack.lib" "..\libxml2\libxml2-2.7.8.win32\lib\libxml2.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"G:\GlukoseScanner\GlucoseScanner\Debug\MachineLearning.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\MachineLearning.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 

发布的链接器设置:

/OUT:"G:\GlukoseScanner\GlucoseScanner\Release\MachineLearning.exe" /MANIFEST /LTCG /NXCOMPAT /PDB:"G:\GlukoseScanner\GlucoseScanner\Release\MachineLearning.pdb" /DYNAMICBASE "../release/GlucoseDLL.lib" "shlwapi.lib" "../PicoScope/ps5000a.lib" "../C/cbw32.lib" "../DSO2250_SDK/Lib/SDK2250DLL.lib" "../IncludeLibs/libfftw-3.3-x86.lib" "../IncludeLibs/libfftwf-3.3-x86.lib" "mlpack.lib" "winmm.lib" "opengl32.lib" "glu32.lib" "..\..\armadillo-4.400.1\build\Release\armadillo.lib" "..\..\armadillo-4.400.1\examples\lib_win32\libblas.lib" "..\..\armadillo-4.400.1\examples\lib_win32\liblapack.lib" "..\libxml2\libxml2-2.7.8.win32\lib\libxml2.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /OPT:REF /SAFESEH /INCREMENTAL:NO /PGD:"G:\GlukoseScanner\GlucoseScanner\Release\MachineLearning.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\MachineLearning.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 

最佳答案

在发布配置下右键点击你的项目 配置属性->常规->全程序优化->“无全程序优化”

您的链接库可能没有启用LTCG 优化,VS2012 无法使用/LTCG 优化您的程序。

关于c++ - 仅在发布版本中出现 fatal error C1047,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25449709/

相关文章:

android - 让 OpenCV 支持 NDK 在 Android Studio 中工作

powershell - 从 Powershell 打包 Visual Studio 项目

assembly - MinGW:与 -nostdlib 链接产生无效的可执行文件

linux - libc 和 libdl 中的 dlopen

c++ - 在我的代码中出现这个 "10038 wsa socket"错误

c++ - TBB Parallel_for 计数,增量变量不准确

c++ - 在 Qt 中更改 show() 上的窗口位置

c++ - 针对 Visual Studio 2012 native C++ 测试从命令行运行 mstest

visual-studio-2012 - 为什么在项目文件中缺少 <SccProjectName> 导致 "The project file is not bound to source control"

c++ - Visual C++ LNK2005、LNK2019 中的链接器错误 - 不确定原因