我需要一些关于C++编译器标志的帮助。我使用的是一个从Windows到Linux的端口库,必须使用-malign-double标志进行编译,“为了兼容Win32”。这是我的理解,这意味着我绝对必须编译我自己的代码与此标志以及?其他.so共享库如何,它们是否也被重新编译过这个标志?如果是这样,有没有办法解决这个问题?C++ -malign-double编译器标志
我是一个linux新手(和C++),所以即使我试图重新编译我用于我的项目的所有库,但它太复杂了,无法递归地找到所有库和库的源代码他们依赖并重新编译所有内容。
编辑: 感谢您的答案。一些背景:该库控制初始化并访问USB连接的摄像机。问题是没有这个标志,奇怪的事情开始发生。看似随意,相机初始化失败,USB连接错误。我也得到了一些堆栈上的几个C字符串(const char *)的内存损坏。基本上,在我调用这个摄像头的初始化之前,他们指向一个目录路径;初始化后,他们指向字符串“我”。对我而言,这很混乱。
Martin,听起来你真的需要和图书馆的作者交谈。 @ osgx的答案我是正确的 - 也许它与文件格式的库使用有关,因为相机可能被视为某种文件系统。但重新编译一切以支持一些设计不佳的文件格式并不是一个好主意。 – 2010-03-16 19:22:40