博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
warning LNK4042: The same object file was specified more than once
阅读量:4181 次
发布时间:2019-05-26

本文共 481 字,大约阅读时间需要 1 分钟。

Background: Libjingle移稙到VS2010下编译。按照Scons给出的工程结构建立了5个lib工程,以及一个call工程。编译jingle时出现warning LNK4042。开始我不管,后来发现编译call出错,凡是在constants.h/constants.cc中定义的变量都不能用,会出现LNK2019 error(出现这个error说明在产生lib的工程中,有一些变量被声明,但没有被定义,也就是说有一些文件没有被编译。见博文:)。

解决:原文地址:

change the value under C/C++ -> Output Files -> "Object File Name" to be the following:

$(IntDir)/%(RelativeDir)/

问题的原因是代码结构中出现了同名的文件,虽然在不同的文件夹,但VS2008以后的版本都默认忽略文件夹结构,也就是说所有的文件在编译时被认为是在一个文件夹里。而同名的文件自然会被忽略而不被编译。

最后用一句话总结:永远不要忽略任何Link的warning!

转载地址:http://cxhai.baihongyu.com/

你可能感兴趣的文章
基于springboot的宠物领养管理系统 java
查看>>
JAVA 洗衣房管理系统 宿舍洗衣机管理系统
查看>>
基于SSM的街道办安全管理系统 JAVA
查看>>
基于SSM的论文选题管理系统 JAVA
查看>>
生成器模式
查看>>
工厂方法模式
查看>>
阿里规范(一)关于CountDownLatch和ThreadLocalRandom的详解(带测试代码)
查看>>
Mysql 函数 STR_TO_DATE
查看>>
Commons CLI 使用介绍
查看>>
Mybatis 缓存实现原理——案例实践
查看>>
Mybatis 缓存实现原理
查看>>
怎么提升SQL查询效率
查看>>
预编译防止sql注入
查看>>
覆盖equals方法时总是要覆盖hashCode
查看>>
clone详解
查看>>
【Java并发编程实战】——AbstractQueuedSynchronizer源码分析(一)
查看>>
【Java并发编程实战】——并发编程基础
查看>>
【Java并发编程实战】——Java内存模型与线程
查看>>
Java复制文件的4种方式
查看>>
mysql的JDBC连接工具类
查看>>