首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态链接intel CRT

静态链接intel CRT
EN

Stack Overflow用户
提问于 2011-06-14 10:47:20
回答 2查看 758关注 0票数 3

我正在使用英特尔编译器编译一段C代码。我将icc与visual studio 2010集成在一起。我想生成一个优化的可执行文件,它将在windows机器上运行。它实际上是云中的一个虚拟机。我没有机会在目标机器上安装任何可再发行库。我想静态链接所有需要的库。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2011-06-14 19:14:40

我想你指的是icl,因为你提到的是VS2010/Windows (icc可能是Linux/Mac版本):只需在项目设置->配置属性->C/C++->代码生成下选择‘多线程(/MT)’就可以了。这将导致MSVC和Intel运行时都静态链接到app中。

但这也取决于你正在使用的其他库,它可能并不适用于所有人。在这种情况下,您可以使用depends.exe (http://www.dependencywalker.com/)检查依赖项,并将它们与.exe并排复制到目标计算机。

票数 1
EN

Stack Overflow用户

发布于 2011-06-14 13:55:48

尝试将-i-static -static-libcxa添加到最终链接。

这应该只对英特尔库强制静态链接。

(你也可以按照littleadv在评论中的建议尝试-static,但这会产生一个巨大的静态可执行文件,根本没有共享库)

另请注意:一种简单的解决方法是将包含所需共享库(不存在于主机上的库)的可执行文件复制到同一目录中。然后在运行动态链接的可执行文件之前设置LD_LIBRARY_PATH=.。这将强制在当前目录和系统目录中搜索库。

编辑:我刚刚注意到你说的是"windows机器“。以上内容与UNIX计算机相关,因此可能对您没有用处。我把它留在这里,以防有人需要信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6338560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档