LINK 错误

部署运行你感兴趣的模型镜像

今天 ,编译的时候,用静态库去编译,出现下面错误:
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)
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
../bin//????.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
在网站上找到了该解决方案,特此公布:
这是库和可执行程序使用了不同的库所引起的冲突。在主程序中的project-settings的link页,下拉框选input项,
在Ignore Librarys中增加:
如果是release版的话:
libc.lib,msvcrt.lib,mfc42.lib
若是debug版,则应为:
libcd.lib,msvcrtd.lib,mfc42d.lib。
嘿嘿搞定!

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

虽然给定引用未直接提及Python扩展库`setup.py`编译时出现link错误的解决办法,但可从一般情况推测可能的解决思路。 ### 检查依赖库 Link错误常因缺少必要的依赖库或库版本不兼容导致。需确认项目所需的所有C/C++库都已正确安装,且版本符合要求。可查看项目文档或`setup.py`文件来明确依赖库。若缺少依赖库,需安装;若版本不兼容,要更新或降级库版本。 ### 检查编译选项 在`setup.py`文件里,编译选项(如库路径、头文件路径等)设置不正确也会引发link错误。需检查`setup.py`中`Extension`对象的参数,确保库路径和头文件路径无误。例如: ```python from setuptools import setup, Extension module = Extension('example', sources=['example.c'], libraries=['mylib'], # 确保库名正确 library_dirs=['/path/to/lib'], # 确保库路径正确 include_dirs=['/path/to/include']) # 确保头文件路径正确 setup(name='example', version='1.0', description='Example Python extension', ext_modules=[module]) ``` ### 检查文件路径和权限 要保证所有源文件、头文件和库文件的路径正确,且Python进程对这些文件有访问权限。若文件路径包含空格或特殊字符,可能需要进行转义处理。 ### 查看详细错误信息 Link错误的详细信息会提供有用线索。在编译时添加`--verbose`选项,获取更详细的编译输出,从而定位问题。例如: ```sh python setup.py build_ext --inplace --verbose ``` ### 清理和重新编译 有时,旧的编译文件(如`.o`文件)可能会导致link错误。可先清理编译目录,再重新编译: ```sh rm -rf build # 清理编译目录 python setup.py build_ext --inplace ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值