fatal error C1047 解决方法
来源:互联网 发布:java办公自动化系统 编辑:程序博客网 时间:2024/06/06 05:28
使用静态库的时候出现的问题,根据错误描述,怀疑是lib不兼容,且我的lib是VS2005编写的,而引入lib却是在VS2008下。
根据MSDN的提示,似乎只能把lib的工程转换为VS2008的工程并重新编译才能解决,但仔细思索之后感觉这个现象实在不符合逻辑,向下兼容是这种工具最基本的要求。
进行了一些尝试,解决方法如下:
打开lib的工程,依旧使用VS2005,在Release模式下:project属性->General->Project Defaults分栏下的 Whole Program Optimization 由 Use Link Time Code Generation 改为No Whole Program Optimization 即可。
个人理解,如果静态库进行了优化,那么引入它的工程就无法获得完整的信息,于是有出错的可能(特别是又跨了版本),而静态库尽量保存完整的信息,优化交给引入的工程来做,如此也比较符合逻辑。欢迎大家斧正。
PS:如果lib的工程自己没有,那么在引入它的工程进行上述的设置也能避掉错误,但似乎程序就完全没有优化了,似乎不妥。
补充:在引入 lib 的工程编译到 link 阶段,出现 warning LNK4099: PDB 'vc80.pdb' was not found 警告,解决方法是,打开 lib 工程,在 project属性->General->Debug Information Format 项设置为 C7 Compatible (/Z7)
- fatal error C1047 解决方法
- fatal error C1047 解决方法
- vs2008链接错误的解决方法1:fatal error C1047,fatal error LNK1257
- fatal error C1047: The object or library file "..."was created with an older compiler than
- [Windows]_[连接错误fatal error C1047--with an older compiler]
- fatal error C1853解决方法
- fatal error C1047: The object or library file "..."was created with an older compiler than other obj
- fatal error CVT1100的解决方法
- fatal error CVT1100的解决方法
- fatal error LNK1104一般解决方法
- 【转载】fatal error C1853解决方法
- fatal error C1034的解决方法
- fatal error C1047: 对象或库文件“EDLib.lib”是使用比创建其他对象所用编译器旧的编译器创建的
- fatal error CVT1100的解决方法(转载)
- fatal error C1853:错误的解决方法
- mysql故障~Got fatal error 1236 解决方法
- ORA-01280: Fatal LogMiner Error解决方法
- Fatal error: Class 'GearmanClient' not found解决方法
- 100题求一个矩阵中最大的二维矩阵(元素和最大)
- mmap详解
- C++的4种类型转换关键字
- Linux文件的复制、删除和移动命令
- vim editor config
- fatal error C1047 解决方法
- 查询不同服务器的数据表
- 超链接(或其他get请求),中文参数的处理
- flot 图表功能
- int为什么是-32768到32767
- windows 关机代码
- TD Oleload导excel数据
- pthread_spinlock_t与pthread_mutex_t性能对比
- 我在ODI10g集成时遇到的各种问题及摸索出来的解决方案