【问题标题】:gcc linker error: undefined reference to `__security_cookie'gcc 链接器错误:未定义对“__security_cookie”的引用
【发布时间】:2014-03-04 20:33:24
【问题描述】:

gcc 我想构建一个DLL,它使用Curl 库。

之后

$gcc -shared -o GA_TestLibV11.dll GA_TestLibV11.o GA_TestLibV11.def curllib_static.lib

$ gcc -shared -o GA_TestLibV11.dll GA_TestLibV11.o GA_TestLibV11.def curllib_static.lib -llibws2_32

我收到以下警告(出现多次)

警告:.drectve `/manifestdependency:"type='win32' name='Microsoft.VC90.CRT' v ersion='9.0.21022.8' 处理器架构='x86' publicKeyToken='1fc8b3b9a1e18e3 b'" /DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' 无法识别

以及以下错误:

curllib_static.lib(./Release/easy.obj):(.text[_win32_init]+0x7): undefined reference to `__security_cookie'

curllib_static.lib(./Release/easy.obj):(.text[_win32_init]+0x41): undefined reference to `@__security_check_cookie@4'

c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: curllib_st
atic.lib(./Release/easy.obj): bad reloc address 0x41 in section `.text[_win32_in
it]'
collect2.exe: error: ld returned 1 exit status

我还需要链接什么来解决这些问题?

谢谢。

【问题讨论】:

    标签: gcc curl dll linker


    【解决方案1】:

    您需要链接其中一个 bufferoverflow.lib 库,

    bufferoverflowU.lib 这个库实现了安全功能 可以在用户模式下使用的 cookie 验证 使用 Win32 API 的应用程序。大多数应用程序链接到此 图书馆。

    bufferoverflowK.lib 这个库实现了一个检查 在操作系统的内核模式下工作的安全 cookie。 在内核模式下运行的服务和子系统必须链接 到这个图书馆。

    bufferoverflow.lib 这个库实现 可用于安全 cookie 验证的功能 用户模式。但是,bufferoverflow.lib 不同于 bufferoverflowU.lib 因为 bufferoverflow.lib 可以在服务中使用 以及在不使用 Win32 API 的应用程序中。

    You may receive the "Linker tools error LNK2001" error messages when you build source code by using the Win32 Software Development Kit (SDK) or the Windows Server 2003 Driver Development Kit (DDK) for Windows Server 2003 Service Pack 1 上查看更多信息。

    或者,您必须在没有/GS 编译器开关的情况下重新构建curl

    在 Microsoft Visual Studio 2002 中,一个名为“ /GS" 已被引入 Microsoft Visual C++ 编译器。当 “/GS”开关被设置,编译器注入缓冲区溢出 编译代码中的检测代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多