haowozao 2019-12-27 22:21 采纳率: 0%
浏览 362

DLL文件包含自己生成的lib文件,编译错误

  1. 我先用空项目 添加了lua的文件 生成了 lua.lib文件
  2. 我创建了一个MFC_DLL文件
    1)在项目->属性->C/C++->附加包含目录里包含了 lua所有.h .c的文件夹 2)在项目->属性->连接器->常规->附加库目录里包含了lua.lib的文件夹 3)在项目->属性->连接器->输入->附加依赖项里输入了lua.lib

我创建的 .h文件的代码
#infndef LUASSSS_H
#define LUASSSS_H
#include

extern "C"

{

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

extern lua_State *L;
#endif

我创建的 .cpp文件的代码

#include "StdAfx.h"
#include "Luassss.h"

lua_State *L = luaL_newstate();  

代码显示无错误 但是编译的时候出现各种错误 请问是我哪里出错了?????
谢谢帮忙 我自己摸索了2天都没搞定 头都大了

error LNK2005: strstr 已经在 libcmtd.lib(strstr.obj) 中定义
error LNK2005: _strchr 已经在 libcmtd.lib(strchr.obj) 中定义
error LNK2005: _fclose 已经在 libcmtd.lib(fclose.obj) 中定义
error LNK2005: _ferror 已经在 libcmtd.lib(feoferr.obj) 中定义
error LNK2005: _ungetc 已经在 libcmtd.lib(ungetc.obj) 中定义
error LNK2005: _
_iob_func 已经在 libcmtd.lib(_file.obj) 中定义
error LNK2005: fread 已经在 libcmtd.lib(fread.obj) 中定义
error LNK2005: _feof 已经在 libcmtd.lib(feoferr.obj) 中定义
error LNK2005: __errno 已经在 libcmtd.lib(dosmap.obj) 中定义
error LNK2005: _realloc 已经在 libcmtd.lib(dbgrealloc.obj) 中定义
error LNK2005: _free 已经在 libcmtd.lib(dbgfree.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _exit 已经在 libcmtd.lib(crt0dat.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isspace 已经在 libcmtd.lib(_ctype.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtoul 已经在 libcmtd.lib(strtol.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtod 已经在 libcmtd.lib(strtod.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _sprintf 已经在 libcmtd.lib(sprintf.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strcspn 已经在 libcmtd.lib(strcspn.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strcoll 已经在 libcmtd.lib(strcoll.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _floor 已经在 libcmtd.lib(_floor_pentium4
.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iscntrl 已经在 libcmtd.lib(_ctype.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalnum 已经在 libcmtd.lib(_ctype.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalpha 已经在 libcmtd.lib(_ctype.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isdigit 已经在 libcmtd.lib(_ctype.obj) 中定义
1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _localeconv 已经在 libcmtd.lib(lconv.obj) 中定义
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1> 正在创建库 ..\test\testdll.lib 和对象 ..\test\testdll.exp
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>..\test\testdll.dll : fatal error LNK1169: 找到一个或多个多重定义的符号
1>
1>生成失败。
1>
1>已用时间 00:00:01.05
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-12-28 13:59
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊