error LNK2001: unresolved external symbol ___security_cookie
Does anybody knows where does this symbol comes from? Is it because I am
using a wrong library or have some bad compiler/linker options?
Thanks for any help
Olivier Lechenne
Logitech Inc.
Thanks for posting in the group.
When getting the errors:
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol @__security_check_cookie@4
in Visual Studio .NET, it is likely that another library is being pulled
into the project. Add the /verbose:lib switch to the Linker command line
and do a rebuild all. This will output all of the libraries that are being
searched. If you see any libs that live in folders that are not part of
the Microsoft Visual Studio .NET install folder and you are not sure why
they are there, then that is probably the cause of this problem.
Go to Tools | Options | Projects | VC++ Directories and in the Include
Files and Library Files directories check for additional paths that should
not be there.
Also, the "unresolved external symbol ____security_cookie" problem has also
been seen when building DLLs in Visual Studio .NET with the /GS ("buffer
security check") flag. This problem is lightly discussed in the MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html
/vclrfGSBufferSecurity.asp
The workarounds given are:
* Not use arrays in any functions that call (or end up calling) CRT_INIT,
for example, use _alloca instead.
* Let the CRT initialize normally. Don't specify your own entry point, use
DllMain instead (and don't call CRT_INIT).
Does that answer your question?
Best regards,
Yanhong Huang
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
!From: "Olivier Lechenne" <olivier_...@logitech.com>
!Subject: unresolved external symbol ___security_cookie
!Date: Tue, 16 Sep 2003 10:56:04 -0700
!Lines: 20
!X-Priority: 3
!X-MSMail-Priority: Normal
!X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!Message-ID: <eZo#pvHfD...@TK2MSFTNGP12.phx.gbl>
!Newsgroups: microsoft.public.dotnet.languages.vc
!NNTP-Posting-Host: amreg.logitech.com 67.17.144.2
!Path:
cpmsftngxa07.phx.gbl!cpmsftngxa10.phx.gbl!cpmsftngxa06.phx.gbl!TK2MSFTNGP08.
phx.gbl!TK2MSFTNGP12.phx.gbl
!Xref: cpmsftngxa07.phx.gbl microsoft.public.dotnet.languages.vc:28278
!X-Tomcat-NG: microsoft.public.dotnet.languages.vc
!
!I am converting some projects from VS 6.0 to VS .NET 2003 and I get a
linker
!error
!error LNK2001: unresolved external symbol ___security_cookie or
!
!error LNK2001: unresolved external symbol ___security_cookie
!
!Does anybody knows where does this symbol comes from? Is it because I am
!using a wrong library or have some bad compiler/linker options?
!
!
!
!Thanks for any help
!
!
!
!Olivier Lechenne
!
!Logitech Inc.
!
!
!
Olivier Lechenne
Logitech Inc.
"Yan-Hong Huang[MSFT]" <yhh...@online.microsoft.com> wrote in message
news:OzQxM2Mf...@cpmsftngxa06.phx.gbl...
I am glad to hear that the problem is resolved.
Thanks for participating the community.
Best regards,
Yanhong Huang
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
!From: "Olivier Lechenne" <olivier_...@logitech.com>
!References: <eZo#pvHfD...@TK2MSFTNGP12.phx.gbl>
<OzQxM2Mf...@cpmsftngxa06.phx.gbl>
!Subject: Re: unresolved external symbol ___security_cookie
!Date: Wed, 17 Sep 2003 14:22:39 -0700
!Lines: 99
!X-Priority: 3
!X-MSMail-Priority: Normal
!X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!Message-ID: <O7hiUHW...@tk2msftngp13.phx.gbl>
!Newsgroups: microsoft.public.dotnet.languages.vc
!NNTP-Posting-Host: amreg.logitech.com 67.17.144.2
!Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.vc:28408
!X-Tomcat-NG: microsoft.public.dotnet.languages.vc
!
!Thanks for your help.
!The /GS flag was the culprit since I am building DLLs and SYS files.
!
!Olivier Lechenne
!Logitech Inc.
!"Yan-Hong Huang[MSFT]" <yhh...@online.microsoft.com> wrote in message
!news:OzQxM2Mf...@cpmsftngxa06.phx.gbl...
!> Hello Olivier,
!>
!> Thanks for posting in the group.
!>
!> When getting the errors:
!>
!> error LNK2001: unresolved external symbol ___security_cookie
!> error LNK2001: unresolved external symbol @__security_check_cookie@4
!>
!> in Visual Studio .NET, it is likely that another library is being pulled
!> into the project. Add the /verbose:lib switch to the Linker command line
!> and do a rebuild all. This will output all of the libraries that are
!being
!> searched. If you see any libs that live in folders that are not part of
!> the Microsoft Visual Studio .NET install folder and you are not sure why
!> they are there, then that is probably the cause of this problem.
!>
!> Go to Tools | Options | Projects | VC++ Directories and in the Include
!> Files and Library Files directories check for additional paths that
should
!> not be there.
!>
!> Also, the "unresolved external symbol ____security_cookie" problem has
!also
!> been seen when building DLLs in Visual Studio .NET with the /GS ("buffer
!> security check") flag. This problem is lightly discussed in the MSDN:
!>
!>
!http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/htm
l
!> /vclrfGSBufferSecurity.asp
!>
!> The workarounds given are:
!>
!> * Not use arrays in any functions that call (or end up calling)
CRT_INIT,
!> for example, use _alloca instead.
!> * Let the CRT initialize normally. Don't specify your own entry point,
!use
!> DllMain instead (and don't call CRT_INIT).
!>
!> Does that answer your question?
!>
!> Best regards,
!> Yanhong Huang
!> Microsoft Online Partner Support
!>
!> Get Secure! - www.microsoft.com/security
!> This posting is provided "AS IS" with no warranties, and confers no
!rights.
!>
!> --------------------
!> !From: "Olivier Lechenne" <olivier_...@logitech.com>
!> !Subject: unresolved external symbol ___security_cookie
!> !Date: Tue, 16 Sep 2003 10:56:04 -0700
!> !Lines: 20
!> !X-Priority: 3
!> !X-MSMail-Priority: Normal
!> !X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!> !X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!> !Message-ID: <eZo#pvHfD...@TK2MSFTNGP12.phx.gbl>
!> !Newsgroups: microsoft.public.dotnet.languages.vc
!> !NNTP-Posting-Host: amreg.logitech.com 67.17.144.2
!> !Path:
!>
!cpmsftngxa07.phx.gbl!cpmsftngxa10.phx.gbl!cpmsftngxa06.phx.gbl!TK2MSFTNGP08
Hi Olivier,
The problem was that the C run-time was not being linked into the DLLs,
and so the security routines were not found by the linker. Using /GS is
certainly worthwhile, so if you can figure out how to link in the right part
of the CRT, I'd recommend doing so.
Cheerio!
--
Brandon Bray Visual C++ Compiler
Any help is welcome.
Olivier
"Brandon Bray [MSFT]" <bran...@online.microsoft.com> wrote in message
news:OPDjORyf...@TK2MSFTNGP09.phx.gbl...
Are you using a different libcmt.lib to link with? The ones installed with
the Visual Studio are in the Vc7\lib directory. If the LIB path is
different, you could be linking with a different CRT.
"Brandon Bray [MSFT]" <bran...@online.microsoft.com> wrote in message
news:Oa8tFAXh...@TK2MSFTNGP12.phx.gbl...