gpt4 book ai didi

C++ -malign-double 编译器标志

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:54 25 4
gpt4 key购买 nike

我需要一些有关 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com