C++のコンパイラフラグについて助けが必要です。WindowsからLinuxへの移植であるライブラリを使用しています。このライブラリは、「Win32互換性のために」-malign-doubleフラグを使用してコンパイルする必要があります。これは、絶対にこのフラグを使用して自分のコードをコンパイルする必要があることを意味することを理解していますか?他の.so共有ライブラリはどうですか?それらもこのフラグで再コンパイルされていますか?もしそうなら、これを回避する方法はありますか?
私はLinux初心者(およびc ++)なので、プロジェクトに使用しているすべてのライブラリを再コンパイルしようとしても、すべてのライブラリとそれらが依存しているライブラリのソースを再帰的に見つけるには複雑すぎました。オンにして、すべてを再コンパイルします。
編集:答えてくれてありがとう。背景:このライブラリは、初期化とUSB接続カメラへのアクセスを制御します。問題は、このフラグがないと、奇妙なことが起こり始めることです。一見ランダムに、カメラの初期化が失敗し、USB接続エラーが発生します。また、スタック上にあるいくつかのc-string(const char *)のある種のメモリ破損が発生します。基本的に、このカメラの初期化を呼び出す前に、それらはディレクトリパスを指します。初期化後、文字列「me」を指します。私にとってどちらが非常に混乱しています。