This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:警告消息:目标文件具有不兼容的枚举类型

Guru**** 2979400 points

Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/940880/ccs-warning-message-object-files-have-incompatible-enumeration-types

Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

您好!

我正在为 ARM Cortex R5F 器件创建 CCS 项目,它有一个 main.c 文件和多个预编译库。 我能够链接到应用程序、但有以下警告:

"C:\\TI\\ccs930\\ccs\\utils\\bin\\gmake"-k -j 32 all -O

编译文件:"../sysbios_r5f.cfg"
调用:XDCtools
"C:/TI/xdctools_3_61_00_16_core/xs "--xdcpath="C:/TI/bios_6_82_00_16/packages;" xdc.tools.configuro configPkg -t ti.targets.arm.elf.r5ft -p ti.platforms.cortexR:xx:false -r release -b "C:/Project/xx_EDMA_R5F/config_xx_r5f.bld "-c "C:/TI/ti-cgt-arm_18.12.5.LTS "-compileOptions "--enum_type=int""../BIOS_r5cfg.sysf"
正在制作 package.mak (由于 package.bld)...
正在为软件包 configPkg 生成接口(因为 package/package.xdc.inc 比 package.XDC 旧)...
从 package/cfg/sysbios_r5f_per5ft.cfg 配置 sysbios_r5f.xer5ft ...
正在生成自定义 ti.sysbios 库 makefile ...
正在开始构建库源...
制作 C:/Project/xx_EDMA_R5F/src/sysbios/sysbios.aer5ft ...
已完成库构建。
clel5ft 软件包/cfg/sysbios_r5f_per5ft.c……
已完成构建:"../sysbios_r5f.cfg"

编译文件:"../main.c"
调用:ARM 编译器
"c:/TI/ti-cgt-arm_18.12.5.LTS/bin/armcl -mv7R5 --code_state=16 --float_support=VFPv3D16 -me --include_path="C:/TI/pdk_xx_07_00_01/packages --include_path="C:/Project/xx_EDMA_R5F --include_path="C:/TI/ti-cgt-arm_18.12.5.LTS/include --define=SOC_xx --define=MCU1_0 --include_path="ctrad_config_romage=-pred=rom_us_code.g=us_code_display_code.g=rom_code_display_code_display_romage=us_code.g=us_code_display_code.g=us_prob_code_display_code_display_code.g=us_prob_code_display_code_display_code.
建筑完工:"../main.c"

.

警告#16027-D:目标文件具有不兼容的枚举类型("../src/sysbios/BIOS.obj = 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:\Project\xx_EDMA_R5F\Debug\configPkg\package\config\SYSBIOS_r5f_per5ft.oer5ft"= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/osal/lib/tirtos/r5f/release/ti.osal.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/osal/lib/tirtos/r5f/release/ti.osal.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/osal/lib/tirtos/r5f/release/ti.osal.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/drv/edma/lib/xx/r5f/release/edma.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/drv/edma/lib/xx/r5f/release/edma.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/csl/lib/xx/r5f/release/ti.csl.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/osal/lib/tirtos/r5f/release/ti.osal.aer5f "= 32位、"./main.obj"= packed)

警告#16027-D:目标文件具有不兼容的枚举类型("C:/TI/pdk_xx_07_00_01/packages/ti/osal/lib/tirtos/r5f/release/ti.osal.aer5f "= 32位、"./main.obj"= packed)

已完成构建目标:"XX_EDMA_R5F.OUT"

警告的原因是什么? 我搜索 E2E 时、似乎过去存在这样的问题:

e2e.ti.com/.../700924

e2e.ti.com/.../293095

解决方案是:Project properties -> Build -> XDCtools -> Advanced Options -> Additional compileOptions (--compileOptions)应该包含字符串"--enum_type=int"。

但是、它没有帮助。

此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    lding 说:
    "C:/TI/ti-cgt-arm_18.12.5.LTS/bin/armcl -mv7R5 --code_state=16 --float_support=VFPv3D16 -me --include_path="C:/TI/pdk_xx_07_00_01/packages --include_path="C:/Project/xx_EDMA_R5F --include_path="c:--include_path="C:/TI/ti-cgt-arm_18.12.5.LTS/include --define=vcp_sup两者 之间的关系-code_membuls=rom_configxx="-opt_build=rom_define -code.page=rom_code.pru_code_display_code.pru="-code.page=us_code.prine_display_code.page=us_code.prine_code.prine_code.prue_code.prue_code.page=-code.prue_code.prue_code.g_code.page=us_code.pru_code.pru_code.g=-code.page=us_code.prue_  

    其中的编译器选项可能会提供一个线索  、说明为什么报告 main.obj 具有与 PDK 库不兼容的枚举类型。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    枚举的基础类型必须在所有构建中保持一致。  现在、您使用--enum_type=int 和 main.c 来构建 BIOS 文件、默认值为--enum_type=packed。  更改一个以匹配另一个。  

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 George! 我在哪里用相同的 enum_type 来控制 BIOS 文件和 main.c? 或者、如何让 main.c 使用 enum_type=int 进行编译? 我看到的唯一位置是:

    但我使用 int 或 packed、警告是相同的。 因此、main.c 似乎始终使用--enum_type=packed 进行构建。

    此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    lding 说:
    在哪里可以使用相同的 enum_type 来控制 BIOS 文件和 main.c?

    遗憾的是、我只知道如何控制编译器选项。  若要查找更改位置 --enum_type、请参阅在 CCS 中查找编译器选项一文。  如果您仍然需要更改 BIOS 设置、则启动新线程、或要求我通知该团队有关此线程的信息。

    谢谢、此致、

    乔治