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.
工具与软件:
您好!
我发现自己的情况与上述有关问题相同。 尝试在 C++中编译包括 DCL.h 在内的源文件。
建议的权变措施是修改 DCL、从而删除使用 complex 类型。 我觉得不是个好主意、因为我一直尝试保持链接到 C2000Ware 的最新版本、该版本将在每次更新时覆盖更改。
正如 Han 在老问题中提到的那样、您是否正在为此寻求永久性解决方案?
此致
Agustin J. Gomez
我在 GitHub 中找到了 C2000存储库、并开发了一个分支来链接我的项目。 我刚刚更改了我使用的库部分。
此处更改:
DCL c++兼容性:删除 complex.h 和 zpk。 switch pragma·agustinjgomez/c2000ware-core-sdk@0945fd3
为了方便您参考、我试图在另一个环境中编译代码、也就是我的主机、一个具有 GCC 版本的 Linux。 我使用 c++98标志进行编译、唯一的问题是使用"复数"类型、但在 TI 的 C28x 实现中没有警告。 它们只是 UNDEF 的"复杂"。 然后、如果我只是更改 DCL 的代码以使用"_Complex"、而不是别名"Complex"、那么它就可以在这里运行。
Agustin、您好!
感谢您提出此问题、是的、复数类型在 c 和 C++之间是固有的不同。 C++现在建议使用 std::complex、而 C 中的 complex 扩展为_complex 关键字。 您的建议是有效的、但尽管如此、我相信 #pragma CODE_SECTION ()只能被 C28x 编译器识别、而不能被 GCC 识别、并且 DCL 针对带有大量 C28x 汇编函数的 C28x 编译器进行了优化。
虽然我不能使 DCL 编译器不可知,但我可以像你建议 DCL 那样做一些更改,以确保 C 和 C++的兼容性。 尽管如此、直到25年第1季度、它才会反映在 C2000Ware 中。
此致!
Sen Wang
尊敬的 Sen:
感谢您的回答。 最好遵守 C++。
为主机而不是目标进行编译的想法、只是允许在没有目标的情况下进行测试、可能是在云中进行测试。 不过、您不必担心这一点。
我可以包装库、伪装一些依赖项和/或使用定义" _TMS320C28XX_" 来使其编译
此致
Agustin J. Gomez