请选择 进入手机版 | 继续访问电脑版
查看: 51|回复: 7

[求助] 在SDK的c工程中添加CPP文件编译错误???

[复制链接]
  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 61 天

    [LV.6]常住居民II

    11

    主题

    122

    帖子

    0

    金豆

    高级会员

    Rank: 4

    积分
    503
    最后登录
    2019-9-20
    发表于 2019-8-19 17:53:40 | 显示全部楼层 |阅读模式
    在SDK包给的任意一个C工程中,创建一个CPP文件,并在CPP文件中调用原来主函数,编译报错:make: *** [makefile:49: lpcxpresso54628_dev_msc_sdcard_freertos.axf] Error 1。下面是实际操作步骤,求助!!!
    例如:在lpcxpress54628_dev_msc_sdcard_freertos的例程中,在source/disk_sdcard.c文件中,将原来的入口函数int main(void)改为
    int usbdisk(void),并在disk_sdcard.h中申明:  

    #ifdef __cplusplus
    extern "C" {
    #endif

    //extern int usbdisk(void);
    int usbdisk(void);

    #ifdef __cplusplus
    }
    #endif


    创建一个新的文件:task_main.cpp,并在文件中调用usbdisk()函数:
    extern "C" {
    #include "disk_sdcard.h"
    }
    int main(void)
    {
            usbdisk();
            while(1)
            {

            }
    }


    编译出错:make: *** [makefile:49: lpcxpresso54628_dev_msc_sdcard_freertos.axf] Error 1




    最佳答案

    l546863256 发表于 2019-9-4 08:37 那就是说MCUXpressoIDE在创建工程时已经固化了,不可更改;C工程不能添加CPP代码,只能新建C++工程才能用 ... 楼主你好。 我今天又帮你问了我们这边IDE经验比较丰富的专家。 他们 ...

    编译报错

    编译报错

    修改主函数

    修改主函数

    函数申明

    函数申明
    哈哈!开心!
    回复

    使用道具 举报

    该用户从未签到

    216

    主题

    4466

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    6695
    最后登录
    2019-9-20
    发表于 2019-8-22 14:14:36 | 显示全部楼层
    楼主你好,cpp是C++的代码吧?那么怎么加载到C工程里面了?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 61 天

    [LV.6]常住居民II

    11

    主题

    122

    帖子

    0

    金豆

    高级会员

    Rank: 4

    积分
    503
    最后登录
    2019-9-20
     楼主| 发表于 2019-8-23 08:26:33 | 显示全部楼层
    小恩GG 发表于 2019-8-22 14:14
    楼主你好,cpp是C++的代码吧?那么怎么加载到C工程里面了?

    SDK例程中给的都是C例程,现在需要使用C++,而且MCUXpressoIDE是支持C++代码的,所以创建一个CPP文件作为主函数,调用原来的C工程。
    哈哈!开心!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    216

    主题

    4466

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    6695
    最后登录
    2019-9-20
    发表于 2019-8-28 11:26:59 | 显示全部楼层
    l546863256 发表于 2019-8-23 08:26
    SDK例程中给的都是C例程,现在需要使用C++,而且MCUXpressoIDE是支持C++代码的,所以创建一个CPP文件作为 ...

    那么你直接新建一个c++的工程,统一使用C++的代码试试,是否有问题?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 61 天

    [LV.6]常住居民II

    11

    主题

    122

    帖子

    0

    金豆

    高级会员

    Rank: 4

    积分
    503
    最后登录
    2019-9-20
     楼主| 发表于 2019-8-29 08:40:37 | 显示全部楼层
    小恩GG 发表于 2019-8-28 11:26
    那么你直接新建一个c++的工程,统一使用C++的代码试试,是否有问题?

    这个没问题。我的意思是怎样在C工程中添加C++代码。。。
    哈哈!开心!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    216

    主题

    4466

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    6695
    最后登录
    2019-9-20
    发表于 2019-9-3 14:16:45 | 显示全部楼层
    l546863256 发表于 2019-8-29 08:40
    这个没问题。我的意思是怎样在C工程中添加C++代码。。。

    C工程添加C++代码还真不清楚, 我只知道用asm插入汇编代码,貌似也没看到客户在MCUXpresso中这么用,我在想,你如果要这么混合,还不如直接新建c++工程。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 61 天

    [LV.6]常住居民II

    11

    主题

    122

    帖子

    0

    金豆

    高级会员

    Rank: 4

    积分
    503
    最后登录
    2019-9-20
     楼主| 发表于 2019-9-4 08:37:17 | 显示全部楼层
    小恩GG 发表于 2019-9-3 14:16
    C工程添加C++代码还真不清楚, 我只知道用asm插入汇编代码,貌似也没看到客户在MCUXpresso中这么用,我在 ...

    那就是说MCUXpressoIDE在创建工程时已经固化了,不可更改;C工程不能添加CPP代码,只能新建C++工程才能用CPP代码
    哈哈!开心!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    216

    主题

    4466

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    6695
    最后登录
    2019-9-20
    发表于 2019-9-4 10:08:11 | 显示全部楼层
    l546863256 发表于 2019-9-4 08:37
    那就是说MCUXpressoIDE在创建工程时已经固化了,不可更改;C工程不能添加CPP代码,只能新建C++工程才能用 ...

    楼主你好。
    我今天又帮你问了我们这边IDE经验比较丰富的专家。
    他们的意思是MCUXPresso IDE C工程并不能支持所有的C++命令,而且目前没有文档,没有参考资料。
    所以,从我们这边来看,还是不建议你在MCUXpressoIDE中用C与C++的混合编程,否则遇到问题,也难以帮你找到相关的资料。建议你直接新建C++的工程,全部用C++代码。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|恩智浦技术社区

    GMT+8, 2019-9-20 22:07 , Processed in 0.149416 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表