現在、arm env を使用して Intel x118 プラットフォームで作業しています。リンクに問題がないことを確認するには、このオプションを強制的に開く必要があることがわかりました。そうしないと、次のようなエラーが発生します。
Error: L6242E: Cannot link object iui_os_irq_msk.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object iui_os.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_critical_section.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_thread.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_event.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_event_group.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_queue.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_sem.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_common.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Error: L6242E: Cannot link object uta_os_mem.o as its attributes are incompatible with the image attributes.
... packed-enum clashes with enum_is_int.
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 13 information, 0 warning and 11 error messages.
--enum_is_int
このオプションが私のターゲットファイルに重大な影響を与えるかどうか、誰か教えてもらえますか?
さらに詳しい情報:
ARMに関するコメントを見つけました:
--enum_is_int
このオプションは、すべての列挙型のサイズを少なくとも 4 バイトに強制します。
このオプションはデフォルトでオフになっており、すべての列挙子の値を保持できる最小のデータ型が使用されます。
コマンド ラインで ARM Linux 構成ファイルを指定すると、このオプションはデフォルトでオンになります。
注
この--enum_is_int
オプションは、一般的な使用にはお勧めできません。