作者z1976 (z1976)
看板C_and_CPP
标题[问题] 有人编译过开源软体WinMerge吗?
时间Fri Jun 24 23:07:51 2016
WinMerge是一套开源文件比对软体
http://winmerge.org/
因公司有些文字文件是用自己的加解密系统,因此只能用自己写的程式去开档、编辑
但那个程式很阳春,导致很多工作上的不便、没效率。
最近看到WinMerge是open source,想说可以改看看在开档的後端加入我们解密的部分
这样就有一个好用的软体可以快速比较、判读文件。
今天实际checkout它的svn回来编译,目录里面有.sln专案
而我的环境是 Windows 7 32位元 + Visual Studio Community 2013。
它里面有3个静态函示库是设成外部依赖,要预先编译好,(expat, pcre, scew)
但要编译完这三个lib,首先要安装好CMake
生成那3个库之後再rebuild主程式的.sln,但最後我还是收到这样的error
---
1>libcpmtd.lib(xlock.obj) : error LNK2038: mismatch detected for
'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value
'MDd_DynamicDebug' in 7zCommon.obj
---
後面很多重复的我就不贴了
因主程式的动态函示库是设成MDd,而这个 7zCommon.obj是主程式的一部分。
但不知为何去关联到libcpmtd.lib,我查了msdn,这是执行阶段函示库(CRT)的mtd版本
如果我配合它,把Runtime Library改为MTd,又会出现错误讯息
1>C:\Program Files\Microsoft Visual Studio
12.0\VC\atlmfc\include\afxver_.h(77): fatal error C1189: #error : Please use
the /MD switch for _AFXDLL builds
应该是说程式是MFC框架所以只能设/MD
到这边就不知道怎麽办了... 7zCommon为何一定要关联到libcpmtd.lib呢
但是既然别人可以,那是不是我环境的问题?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.240.194
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1466780874.A.E24.html
※ 编辑: z1976 (36.224.240.194), 06/24/2016 23:25:46
1F:→ aimwang: 诚心建议直接用kdiff3,免得日後还要再搞一次 06/25 14:50