首页
社区
课程
招聘
VC中的编译问题
发表于: 2011-7-21 18:24 9814

VC中的编译问题

2011-7-21 18:24
9814
#include <iostream>
int main()
{
  
        using namespace std;
        int a;
        a=56;
        cout<<a<<endl;
   return 0;
}

编译出错。。不知道错哪里
错误信息:

--------------------Configuration: 2323 - Win32 Release--------------------
Compiling...
56ASDSDA.CPP
Linking...
libcp.lib(locale.obj) : error LNK2001: unresolved external symbol ___security_cookie
libcp.lib(wlocale.obj) : error LNK2001: unresolved external symbol ___security_cookie
libcp.lib(xlocale.obj) : error LNK2001: unresolved external symbol ___security_cookie
libcp.lib(locale.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
libcp.lib(wlocale.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
libcp.lib(xlocale.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
Release/2323.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.

2323.exe - 1 error(s), 0 warning(s)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 202
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
程序没错,我用vs2008,创建控制台项目,把你的代码拷贝,生成,没一点问题。
你用的什么版本VC?应该是哪里设置的不对。
2011-7-21 20:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
链接的 CRT 里找不到___security_cookie,VC设置问题。

不过可以先尝试使用/GS-开关屏蔽___security_cookie看看。
2011-7-21 21:58
0
雪    币: 169
活跃值: (132)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
VC6.0....
2011-7-22 00:33
0
雪    币: 169
活跃值: (132)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请问这个 具体怎么弄。我是菜鸟呢。。。谢谢你的回答
2011-7-22 00:35
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼主工程里就只有一个文件还是多文件的,看得很不明白,56ASDSDA.CPP在VC6里一般编译出56ASDSDA.exe但你却编译出2323.exe,有两种一是你改了编译出来的文件名字,另外一种就是56ASDSDA.CPP文件里写的不是你贴出来的代码。嘛,我深究也没用。

我也是用VC6的,编译你的代码没出现你这样的问题,你试试在#include <iosteam>下面加一句
#pragma comment(lib,"bufferoverflowU.lib")
试试

还有你有没有包含错库,在工具(tools)->选项(options)->目录(Directories)标签页下看看
Include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
Library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

再按Alt+F7,将左边调成Win32 Release,看看右边Link标签页下的Project Options,我的是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"Release/56ASDSDA.pdb" /machine:I386 /out:"Release/56ASDSDA.exe"

我用的是原版英文版VC6再打SP6补丁的,由于没遇到您的问题,所以只能发表一下意见
2011-7-22 03:04
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
没有问题。在VC6。0里直接就运行了。
2011-7-22 09:35
0
雪    币: 94
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
关闭缓冲区安全检查
2011-7-22 11:16
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你是不是借用了别人的工程文件
自己重新建立一个把代码拷贝进去就好了

可能高版本的vs支持GS,VC6不支持
2011-7-22 11:29
0
雪    币: 169
活跃值: (132)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
加了还是不行。。只有一个文件。。。自己写的代码。。加了#pragma comment(lib,"bufferoverflowU.lib")
就报

--------------------Configuration: Cpp1 - Win32 Release--------------------
Compiling...
Cpp1.cpp
Linking...
LIBC.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Release/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

Cpp1.exe - 1 error(s), 0 warning(s)
哎。。
2011-7-22 12:16
0
雪    币: 169
活跃值: (132)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我这个是VC6.0.。。该怎么关闭?
2011-7-22 12:16
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我们用VC6都没问题,与其搞那么久不如重装VC6算了,我推荐用VC6原版英文版,一直用得好好的,不推荐用创天中文的VC6,自己用过与别人都说一堆Bug
自己上传了自己用的版本给力
VC6:
http://u.115.com/file/dn932z4o
安装说明:
http://u.115.com/file/dn9327ue
2011-7-22 14:34
0
雪    币: 156
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
居然是重装,唉..........
2011-7-25 18:47
0
雪    币: 793
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
Project里面选Settings 点link选项里 链接成/subsystem:windows 看能解决报错不
2011-7-26 08:22
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
命名空间 using namespace std;是不是要放在main函数之前
2011-7-27 16:53
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
http://forums.amd.com/forum/messageview.cfm?catid=67&threadid=84075

之后,[Project] --> [Settings] --> 选择"Link"属性页,  
在Project Options中将/subsystem:windows改成/subsystem:console
2011-7-27 17:56
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
创建控制台工程试一下...
2011-7-27 18:11
0
雪    币: 172
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼主用的VC6?

Security cookie是VC2002引入的特性 (使用/GS编译选项),VC6是没有这个概念的。之所以会报这些链接错误,估计是混合使用了不同版本的编译工具,比如同时安装了其它高版本的VC (2002-2010),并把后者的头文件路径设置在了VC6的头文件路径之前。

建议楼主仔细检查VC6中 Tools -> Options -> Directories 对话框里 "Include files" 和 "Library files" 的设置,把VC6对应的头文件路径和库文件路径提到最上面,并删掉其它VC对应的目录 (参见6楼的配置)。
2011-7-28 11:04
0
游客
登录 | 注册 方可回帖
返回
//