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.

[参考译文] 编译器/TMS570LS3137:包含<string>(C++)时出现 TI v18.1.0.LTS 编译器错误

Guru**** 2540720 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/710494/compiler-tms570ls3137-ti-v18-1-2-lts-compiler-error-when-including-string-c

器件型号:TMS570LS3137

工具/软件:TI C/C++编译器

我的 include (或任何使用字符串的标头、如 )在我的项目中、我收到下面的错误消息。 我对其他 STL 接头没有任何问题、例如 或 。 我已经尝试重新安装代码生成工具、但没有修复任何问题。

>>编译失败
source/subdir_rules.mk:163:目标'source/sys_main.obj'的配方失败
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include/libcxx/__string "、第269行:错误#121:返回值类型与函数类型不匹配
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include/libcxx/__string "、第375行:错误#121:返回值类型与函数类型不匹配

以下是编译器库中的引用行:

内联_LIBCPP_CONSTEXPR_after_CXX14
const char*
char_stalnstalsists ::find (const char_type*__s、size_t __n、const char_type&__a)_NOEXCEPT
{
如果(_n = 0)
返回空;//line 269
#if __has_feature (cxx_constexpr_string_builtins)
返回__builtin_char_memchr (__s、to_int_type (__a)、__n);
#elif _LIBCPP_STD_VER <= 14
返回(const char_type*) memchr (__s、to_int_type (__a)、__n);
#else
对于(;__n;-__n)
{
if (eq (*_s、__a))
返回_s;
++_s;
}
返回 NULL;
#endif
} 

(笑声)

内联_LIBCPP_CONSTEXPR_After _CXX14
const wchar_t*
char_petiS ::find (const char_type*__s、size_t __n、const char_type&__a)_NOEXCEPT
{
如果(_n = 0)
返回空;//line 375
#if __has_feature (cxx_constexpr_string_builtins)
返回__builtin_Wmemchr (__s、__a、__n);
#elif _LIBCPP_STD_VER <= 14
返回 wmemchr (__s、__a、__n);
#else
对于(;__n;-__n)
{
if (eq (*_s、__a))
返回_s;
++_s;
}
返回 NULL;
#endif
} 

感谢你的帮助。

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

    要了解发生了什么、我们需要更多信息。  对于源文件 sys_main.cpp、请发送测试用例、如文章 如何提交编译器测试用例中所述。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    这是请求的预处理文件

    e2e.ti.com/.../sys_5F00_main.txt

    控制台日志:


    ****为项目 VehicleDataLogger_cpp 构建配置调试****

    "C:\\ti\\ccsv8\\utils\\bin\\gmake"-k -j 8 all -O

    编译文件:"../source/sys_main.cpp
    调用:ARM 编译器
    "c:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/bin/armcl /Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp/fatfs/source /Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp/include -mv7R4 --code_state=32 --float_support=VFPv3D16 -Ooff --opt_for_speed=1 --include_path="C:/Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp /Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp/fatfs/port /ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include --include_path="C:/Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp/abstract /Users/nz6w7j/git/VehicleDataLogger_cpp/VehicleDataLogger_cpp/cpp_driver_wrappers /source/sys_main.cpp --include_path="cn_exit_rom="c:cn_exit_rom-exc="-cn_exit_excus_rom-ine-probe-probe-combe_ine_inflag="-cn"--excrom-code.comb_ex-ex-rom-cn_ab_ex-rom-ex-ex-rom-ex-ine_ine_ine_probi-board_ex-cn"-excrom-excrom-ine_ine_probi-board_ex-cn"-cn_excrom-ex-ex-excrom-ine_intrab_ex-ine_ination_real-ination_real-

    >>编译失败
    source/subdir_rules.mk:163:目标'source/sys_main.obj'的配方失败
    "C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include/libcxx/__string "、第269行:错误#121:返回值类型与函数类型不匹配
    "C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include/libcxx/__string "、第375行:错误#121:返回值类型与函数类型不匹配
    在编译"../source/sys_main.cpp 中检测到2个错误。
    gmake:***[source/sys_main.obj]错误1.
    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

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

    感谢您提交测试用例。  我可以重现问题。  我在 SDOWP 系统中提交了 CodeGen-5033来调查这一问题。  欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    谢谢、此致、

    乔治

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

    对于任何其他遇到此问题的人、将"/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.2.LTS/include/libcxx/__string 中所有四个出现的"NULL"更改为"nulllptr"似乎可以作为临时修复。