use*_*683 5 dll linker gcc curl
与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
Run Code Online (Sandbox Code Playgroud)
我收到以下警告(多次出现)
警告:.drectve`/manifestdependency:"type ='win32'name ='Microsoft.VC90.CRT'v ersion ='9.0.21022.8'inverlerArchitecture ='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
Run Code Online (Sandbox Code Playgroud)
还有什么可以链接来解决这些问题?
谢谢.
您将需要链接到 bufferoverflow.lib 库之一,
bufferoverflowU.lib 该库实现了安全 cookie 验证功能,可以在用户模式和使用 Win32 API 的应用程序中使用。大多数应用程序都链接到该库。
bufferoverflowK.lib 该库实现了在操作系统内核模式下工作的安全cookie的检查。在内核模式下运行的服务和子系统必须链接到该库。
bufferoverflow.lib 该库实现了可在用户模式下使用的安全 cookie 验证功能。但是,bufferoverflow.lib 与 bufferoverflowU.lib 不同,因为 bufferoverflow.lib 可以在不使用 Win32 API 的服务和应用程序中使用。
或者,您必须在没有编译器开关的情况下重建curl/GS,
在 Microsoft Visual Studio 2002 中,Microsoft Visual C++ 编译器引入了一个名为“/GS”的新编译器开关。当设置“/GS”开关时,编译器会在编译后的代码中注入缓冲区溢出检测代码。