我需要一些关于 c++ 中编译器标志的帮助。我正在使用一个库,它是从 Windows 到 linux 的端口,必须使用 -malign-double 标志编译,“为了 Win32 兼容性”。我的理解是这意味着我绝对必须用这个标志编译我自己的代码?其他 .so 共享库怎么样,是否也使用此标志重新编译了它们?如果是这样,有没有办法解决这个问题?
我是一个 linux 新手(和 c++),所以即使我尝试重新编译我用于我的项目的所有库,递归查找所有库和它们所依赖的库的源代码也太复杂了打开,然后重新编译所有内容。
编辑:感谢您的回答。一些背景知识:该库控制初始化和对 USB 连接相机的访问。问题是如果没有这个标志,奇怪的事情就会开始发生。看似随机,相机的初始化失败,USB连接错误。我还得到了堆栈上的几个 c 字符串(const char *)的某种内存损坏。基本上,在我调用这个相机的初始化之前,它们指向一个目录路径;初始化后,它们指向字符串“me”。这对我来说非常令人困惑。