- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要一些有关 C++ 编译器标志的帮助。我正在使用一个库,它是从 Windows 到 Linux 的端口,必须使用 -malign-double 标志编译,“为了 Win32 兼容性”。据我了解,这意味着我也必须用这个标志编译我自己的代码吗?其他 .so 共享库怎么样,是否也使用此标志重新编译了它们?如果是这样,有什么办法解决这个问题吗?
我是一个 Linux 新手(和 C++),所以即使我尝试重新编译我在我的项目中使用的所有库,递归地找到所有库的源代码和它们的库也太复杂了'依赖并重新编译一切。
编辑:感谢您的回答。一些背景:这个库控制初始化和访问 USB 连接的相机。问题是如果没有这个标志,奇怪的事情就会开始发生。看似随机,相机初始化失败,USB连接错误。我还得到了堆栈上的几个 c 字符串 (const char*) 的某种内存损坏。基本上,在我调用这个相机的初始化之前,它们指向一个目录路径;初始化后,它们指向字符串“me”。这让我很困惑。
最佳答案
这是一个很棒的旗帜名称!我想知道是否还有-malign-influence?但严重的是,这个标志控制了一个轻微的优化:
-malign-double
-mno-align-double
Control whether GCC aligns double, long double,and longlong variables on a two word boundaryor a one word boundary.Aligning doublevariables on a two word boundary willproduce codethat runs somewhat fasteron a ‘Pentium’ at the expense of morememory.
库或您的代码不太可能需要此标志。通常,您不应该使用对齐控制标志,除非您确切地知道自己在做什么。如果您确实觉得需要使用它们,请参阅 GCC 手册,网址为 http://gcc.gnu.org/onlinedocs .
关于C++ -malign-double 编译器标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457182/
我需要一些有关 C++ 编译器标志的帮助。我正在使用一个库,它是从 Windows 到 Linux 的端口,必须使用 -malign-double 标志编译,“为了 Win32 兼容性”。据我了解,这
我是一名优秀的程序员,十分优秀!