Skip to content

Instantly share code, notes, and snippets.

@pk5ls20
Created January 12, 2025 18:40
Show Gist options
  • Save pk5ls20/280a088a501b50a4d5f8be54ce9264c8 to your computer and use it in GitHub Desktop.
Save pk5ls20/280a088a501b50a4d5f8be54ce9264c8 to your computer and use it in GitHub Desktop.
cgo需求分析.md

需求:将CGO程序链接一个MSVC的lib

Golang 目前仅支持GCC,并没有提供对MSVC的支持,似乎对LLVM的支持也有限

现有方案汇总

对第三种方式的尝试:

# MSVC CMD
set CXX=clang++
set CC=clang
set CGO_CFLAGS="-IC:/Users/pk5ls/Desktop/frida_go_test/msvc/stable"
go build -x -o build/ddns4cdn.a -buildmode=c-archive .
# MSVC PS
clang-cl /MD /Zi /Od /Fe"build\ddns4cdn_msvc_c.exe" /Fo"build\ddns4cdn_msvc_c.obj" brn\main.c /link build\ddns4cdn.a msvc\stable\frida-core.lib ws2_32.lib user32.lib gdi32.lib ole32.lib shell32.lib advapi32.lib setupapi.lib Psapi.lib Dnsapi.lib Crypt32.lib shlwapi.lib /DEBUG  // 有堆栈

cl /MD /Fe"build\ddns4cdn_msvc_c.exe" /Fo"build\ddns4cdn_msvc_c.obj" brn\main.c /link build\ddns4cdn.a msvc\stable\frida-core.lib ws2_32.lib user32.lib gdi32.lib ole32.lib shell32.lib advapi32.lib setupapi.lib Psapi.lib Dnsapi.lib Crypt32.lib shlwapi.lib //没有堆栈
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment