什么是堆栈对齐?为什么用它?可以通过编译器设置来控制吗?
这个问题的细节来自于尝试将ffmpeg库与msvc一起使用时遇到的问题,但我真正感兴趣的是对"堆栈对齐"的解释.
细节:
- 当runnig我的msvc编译程序链接到avcodec我得到以下错误:"编译器没有对齐堆栈变量.Libavcodec已被错误编译",随后avcodec.dll崩溃.
- avcodec.dll没有用msvc编译,所以我无法看到里面发生了什么.
- 运行ffmpeg.exe并使用相同的avcodec.dll时一切正常.
- ffmpeg.exe没有用msvc编译,它符合gcc/mingw(与avcodec.dll相同)
谢谢,
担