Thread 中讨论的其他器件:SYSBIOS
工具/软件:Code Composer Studio
您好!
请参阅主题行。
我从一个示例项目(NIMU 基本示例)开始、以进行构建。 整个项目使用纯 C 语言。 现在我要添加几个 C++类、它们实际上只是 C 代码的封装包装程序。
所有内容都可以编译、因为我已经正确地补偿了在 C 和 C++之间发生的名称改编问题。 以下是在传入 TCP/IP 连接上执行的代码的一个小示例:
newskt =接受(skt、(struct sockaddr*)&client、&size);
System_printf ("\n 连接到达:sd:%x\n"、newskt);
system_flush();
ipaddr = client.sin addr.s_addr;
m_connection = new CCxn();
m_connection->Initialize (newskt、ipaddr);
上述代码位于 cppp 文件中、而不是 C 文件中、因此编译器知道什么是"新"。
具体而言,故障发生在 m_connection = new CCxn(); (第58行)
'调用:GNU Linker' "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe -mtune = cortex-A8..... " C:\Users\Scott\workspace_v7\Nimu_BasicExample_bbbAM335x_armExampleProject\Debug/./HTTP/Server.cpp:58:未定义对` /HTTP/Server.cpp ` /HTTP/Server.cpp ` operator new (unsigned int)'的引用 C:\Users\Scott\workspace_v7\bbu_BasicExample_AM335x_armExampleProject\undefine_bined_cron_crone_b1352_b_b_b_workspace_workspace_b_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace_workspace
问题是链接器(而不是编译器)显示无法找到"新"、"删除"或"__cxa_end_clean"。
我使用的是 GNU v 4.9.3编译器。 当我尝试将其更改为 GNU 6.3.1编译器时、我收到了"struct timeval "的重新定义错误的大量加载、因此我放弃了该策略、因为我不想在接下来的几天内花时间来弄清为什么存在标头冲突。
链接 C++项目并解析这些 basci C++运算符的过程是什么?
谢谢。
-CSW

