ipo: error #11035,这个ICL编译器链接错误如何处理?

zm0011 2008-04-24 08:16:55
我在WindowsServer2003 r2 x64 sp2中文版环境下使用64位INTEL C++编译器编译程序时,编译能无错通过,在链接过程中总是遇到以下错误提示:

Linking... (Intel C++ Environment)
ipo: error #11035: Fatal error cannot open bufferoverflowu
xilink: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)
xilink: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)

DEBUG或RELEASE方式都是这样的,但使用VC++9编译器就能无错编译链接成功。

版本:Intel(R) C++ Compiler 10.1.021 + Visual Studio 2008 - 9.0.21022.8
...全文
1256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
intel_iclifort 2008-05-27
  • 打赏
  • 举报
回复
在Intel C++ Compiler for Windows的发行说明中(http://www.intel.com/software/products/compilers/docs/cwin/release_notes.htm), 提到了的一个问题, 可能和这个bufferoverflowu有关. 原文如下

Link Error for IA-64 or Intel® 64 Architecture Systems When Using Platform SDK

When building for IA-64 or Intel® 64 architecture systems using the Microsoft Platform SDK, applications may fail to link with errors such as the following:

LIBC.lib(a_str.obj) : error LNK2001: unresolved external symbol __security_cookie
[...]
LIBC.lib(a_str.obj) : error LNK2001: unresolved external symbol __security_check_cookie
[...]

This problem is due to an inconsistency within some versions of the Microsoft Platform SDK. Intel is working with Microsoft to resolve this issue. To work around the problem, link your application in one of the following ways:

* icl hello.c /MD
* icl hello.c -link bufferoverflowu.lib
* icl hello.c /MT bufferoverflowu.lib

The choice of bufferoverflowu.lib is appropriate for the typical user-mode application using the Win32 API. If your application is for user-mode subsystems and services which cannot use the Win32 API, use bufferoverflow.lib instead. Kernel-mode applications and drivers must link to bufferoverflowk.lib.
WFH1985 2008-05-27
  • 打赏
  • 举报
回复
我也这个问题,真及时
zm0011 2008-04-24
  • 打赏
  • 举报
回复
http://softwarecommunity.intel.com/isn/Community/en-US/forums/30252924/ShowThread.aspx

根据上面网页提供的方法

在linker选项的命令行中加入
/nodefaultlib:bufferoverflowu

可以成功地编译连接。

另外两种方法,测试结果如下:

——————————————————————————————————
在linker选项的命令行中加入 -qnoipo 试试
——————————————————————————————————
1>Linking... (Intel C++ Environment)
1>LINK : fatal error LNK1104: 无法打开文件“bufferoverflowu.lib”

———————————————————————————————————————————————————

检查一下 bufferoverflowu.lib 是否在链接命令行中,以及路径是否在linker的搜索路径中?
——————————————————————————————————
1>Linking... (Intel C++ Environment)
1>xilink: executing 'link'
1>kernel32.lib(KERNEL32.dll) : fatal error LNK1112: 模块计算机类型“IA64”与目标计算机类型“x64”冲突
——————————————————————————————————

忘了说明,我的机器是VMWARE Workstation 6.02, 虚拟双核CPU。真实CPU是酷睿E6600。

感谢以上两位的回答。


intel_iclifort 2008-04-24
  • 打赏
  • 举报
回复
在linker选项的命令行中加入 -qnoipo 试试
zm0011 2008-04-24
  • 打赏
  • 举报
回复
/OUT:"x64|x64\Release/ms.exe" /VERBOSE /INCREMENTAL:NO /nologo /LIBPATH:"C:\Program Files (x86)\Intel\tbb20_20080408oss\em64t\vc9\lib" tbb.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 /MANIFEST /MANIFESTFILE:"x64|x64\Release\ms.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:NOWIN98 /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\_Work_\MergeSort\x64|x64\Release\ms.lib" /MACHINE:X64
intel_www 2008-04-24
  • 打赏
  • 举报
回复
检查一下 bufferoverflowu.lib 是否在链接命令行中,以及路径是否在linker的搜索路径中?

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧