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.

[参考译文] CC3235MODASF:迁移到 clang

Guru**** 2513185 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1018013/cc3235modasf-migration-to-clang

器件型号:CC3235MODASF
Thread 中讨论的其他器件:SYSBIOS

您好!

我正在尝试将我们的项目迁移到 tiarmclang、如下所述: https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/migration_guide/index.html

迁移正常。 project.log 仅显示无问题警告。

但是、当我尝试编译时、我会得到以下输出:

**** Build of configuration Release__TICLANG for project cc32xx_roomz_lib ****

"C:\\ti\\ccs1000\\ccs\\utils\\bin\\gmake" -k -j 8 all -O 
 
Building file: "../release.cfg"
Invoking: XDCtools
"C:/ti/ccs1000/xdctools_3_62_00_08_core/xs" --xdcpath="C:/ti/simplelink_cc32xx_sdk_5_10_00_02/source;C:/ti/simplelink_cc32xx_sdk_5_10_00_02/kernel/tirtos/packages;C:/ti/simplelink_cc32xx_sdk_5_10_00_02;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4 -p ti.platforms.simplelink:CC3235SF -r release -c "C:/ti/ti-cgt-armllvm_1.3.0.LTS" "../release.cfg"
configuring release.xem4 from package/cfg/release_pem4.cfg ...
generating custom ti.sysbios library makefile ... 
Starting build of library sources ...
making C:/workspace/ccs_v3/cc32xx_roomz_lib/src/sysbios/sysbios.aem4 ...
clem4 C:/ti/simplelink_cc32xx_sdk_5_10_00_02/kernel/tirtos/packages/ti/sysbios/BIOS.c ...
Build of libraries failed.
subdir_rules.mk:19: recipe for target 'build-660403727-inproc' failed
C:/Users/gerbe/AppData/Local/Temp/make4492-3.sh: 1: C:/Users/gerbe/AppData/Local/Temp/make4492-3.sh: C:/ti/ti-cgt-armllvm_1.3.0.LTS/bin/armcl: not found

XDC 工具似乎仍然配置为使用 armcl、并且在 clang 文件夹中找不到它...

当我查看 Release_TICLANG/configPkg/package.mak 时、我会看到对 armcl 的引用。

release.xem4: package/cfg/release_pem4.oem4 
	$(RM) $@
	@$(MSG) lnkem4 $@ ...
	$(RM) $(XDCCFGDIR)/$@.map
	$(ti.targets.arm.elf.M4.rootDir)/bin/armcl -fs $(XDCCFGDIR)$(dir $@). -q -u _c_int00 --silicon_version=7M4 -z --strict_compatibility=on  -o $@ package/cfg/release_pem4.oem4   package/cfg/release_pem4.xdl  -w -c -m $(XDCCFGDIR)/$@.map -l $(ti.targets.arm.elf.M4.rootDir)/lib/libc.a
	

我搜索了如何配置 XDC 以使用 clang、但没有成功。

如何更改?  

C é dric

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

    C é dric、您好!

    我需要就此进行咨询、然后再与您联系。

    一个可能更容易的选择是从 clang 工程(如最新 SDK 中所示)开始并替换源代码。

    BR、

    Kobi

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

    您可以在 CCS 中打开项目吗?

    如果是,在“项目属性”->“常规”->“项目”中定义了什么编译器?

    如果您没有看到"TI Clang ..." 尝试切换到一个。

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

    您好、Kobi、

    它已设置为 TI CLANG。 当我查看编译器属性时、它正确地显示了 clang config。  

     

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

    您在 Properties -> Build -> Arm Compiler -> Command 中看到了什么?

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

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

    它就像你的一样被设置为“冷”。

    我不确定 XDC 工具部件是否正确。

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

    这是我的... (非常相似)。

    我建议您使用 clang 项目作为参考并搜索差异(或将其用于您的项目并仅替换源代码)。

    BR、

    Kobi

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

    在对示例项目进行一些查找之后、我发现  它们的标志中包含 ti.targets.arm.clang.M4、而不是 ti.targets.arm.elf.M4 (以及编译器参数)。 通过此修改后、它现在通过了此步骤"确定"。

    在迁移工具中添加此内容可能很有趣。

    由于 #include_next、我也遇到了一些问题  ti/posix/ticlang/sys/types.h 中的/*工具链头文件*

    在对编译器搜索路径进行某种 shuffling 后、现在编译正常。

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

    您好、Cedric、

    感谢您提供分辨率信息。

    BTW。 您在哪里更新了标志?

    BR、

    Kobi

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

    我在 XDCtools => flags set 汇总中编辑了它

    底部有一个"Edit Flags"按钮。

    现在、我在链接方面遇到了问题。

    我的项目都使用静态库项目。 静态库正在使用 clang 编译 ok、其输出可由不使用 clang 的主工程使用。

    但是、当我将主项目迁移到 clang 时。 我得到一些未定义的符号。

    未定义的首次引用
    符号
    ------ --------
    __VLA_alloc C:/workspace/ccs_v3/cc32xx_roomz_lib/Release/cc32xx_roomz_lib.lib
    __VLA_dealloc C:/workspace/ccs_v3/cc32xx_roomz_lib/Release/cc32xx_roomz_lib.lib
    main_func_sp C:\ti\simplelink_cc32xx_sdk_5_10_00_02\kernel\tirtos\packages/ti\targets\arm\rtsarm\lib\boot.aem4

    我找不到定义这些内容的.A 文件。  

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

    HTTP_setza 是您的库中的文件吗?

    我再次建议您将库设置与 SDK 中的其中一个 clang 库进行比较。 可能缺少编译/存档标志。

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

    是的、 是的。

    我花了一些时间比较示例项目和我的项目:

    -编译器设置

    -链接器设置

    -链接路径

    -目标

    目前还没有成功。  

    假期过后、我将再次选择此选项。

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

    感谢您的更新。