编译时出现一个问题,不知道为什么?上网查了也没有解决,大家帮我看看!

lujj2010 2011-12-09 09:19:07
我的一个实现AES算法的程序里有这样三个文件:
main.c AES_Lib.c AES_Lib.h
我运行一个main.c这个程序时,编译链接是出现如下的错误:
main.obj : error LNK2001: unresolved external symbol _AES_Encrypt
main.obj : error LNK2001: unresolved external symbol _AES_ExpandKey
Debug/main.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

main.exe - 4 error(s), 0 warning(s)
我运行AES_Lib.c时,出现下面的错误:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/AES_Lib.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

AES_Lib.exe - 2 error(s), 0 warning(s)这个错误我按照网上查到的办法解决,将Console该为windows后有出现了 error LNK2001: unresolved external symbol _WinMain@16的错误。现在编译能通过,链接时就出现问题!
...全文
85 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
northcan 2011-12-10
  • 打赏
  • 举报
回复
建个控制台工程,把这三个文件加进去。

AES_Lib.c 里面放AES函数实现, AES_Lib.h里面放AES函数声明。

main.c里面放主函数

#include "AES_Lib.h"
int main()
{
// 调用AES functions
}
mymtom 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lujj2010 的回复:]

5楼 这个应该怎么写?写在哪儿?
[/Quote]
1. 在命令行窗口,用命令行编译就可以了。
cl -o AES main.c AES_Lib.c

2. 也可以建立一个控制台工程,然后把main.c AES_Lib.c AES_Lib.h三个文件都加到工程里
lujj2010 2011-12-09
  • 打赏
  • 举报
回复
5楼 这个应该怎么写?写在哪儿?
mymtom 2011-12-09
  • 打赏
  • 举报
回复
cl -o AES main.c AES_Lib.c
lujj2010 2011-12-09
  • 打赏
  • 举报
回复
哪个库没连接上?我是第一次这样子分开写程序,没想到就错了!
duke56 2011-12-09
  • 打赏
  • 举报
回复
unresolved external symbol _WinMain@16//你的工程建错了...或者你是直接双击源文件而不是用VC打开工程的
quwei197874 2011-12-09
  • 打赏
  • 举报
回复
有个库没连接上
無_1024 2011-12-09
  • 打赏
  • 举报
回复
前面的错误是因为使用了未声明的标识符
看看宏定义时候缺乏
还有建立一个空工程 然后把这些文件建立为一个工程

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧