昨天晚上静态编译的时候,输出了错误,当场就纠结了。代码用了2个模块来写,一个是精易模块3.3 一个是锐浪静态编译2.0 。一看错误信息,是有多个重复定义造成的。
马上就做出了判断,肯定是2个模块造成的,但是2个都不能删除啊,一个是因为某种原因打印必须要的,一个是编写这么久以来一直用着的,如果删除掉,程序就得重写很多地方,非得累死我。没办法,立刻开始排查,无果。继续排查,无果。网上求救,无果。
迫于无奈,下载了精易源码来修改,和锐浪模块对比没有发现什么明显问题。
然后继续迫于无奈,把源码程序备份,然后一个窗口一个窗口删除,一个程序集一个程序集的删除,突然,发现删除了某一个窗口后,编译正常了。再一个子程序一个子程序的注释掉。找出了原因,代码里有这么一句:
打开指定网址()
顿时找到了原因,这个是应用接口支持库—窗口操作里边的 。锐浪模块或许是作者在编写的时候没有注意到,导致冲突了。问题既然找到了,把这句注释掉就搞定了!
正在编译...
正在生成主程序入口代码
程序代码编译成功
等待用户输入欲编译到的文件名
正在进行名称连接...
开始静态链接...
LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Exit_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __environ already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argv already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: ___argc already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winminor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winmajor already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __winver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __osver already defined in libcmt.lib(crt0dat.obj)
LIBC.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in libcmt.lib(crt0dat.obj)
C:\Users\ARSCM\Desktop\管理软件19.exe : fatal error LNK1169: one or more multiply defined symbols found
静态连接失败