u011294422
脑残之无限进化
采纳率33.3%
2018-06-16 05:49 阅读 873

以前做的c语音学生成绩管理系统怎么运行不了,出现无法解析的外部符号错误

5

运行环境vs2010,和vs2012,都运行不了。求助,很急!!!!!!!!!!!!!!!图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    wodexinhao wodexinhao 2018-06-16 08:48

    直接在cpp里面写 #include "c.h"引用C头文件会在连接的时候出现此类错误, 根本原因在于C++ 和 C在对函数命名方式的不同。

    在 .h 头文件修改

    #ifndef XXX_H
    #define XXX_H

    #ifdef __cplusplus
    extern "C"
    {
    #endif

    (此处为原来头文件内容)

    #ifdef __cplusplus

    }
    #endif
    #endif

    然后在 .c 源代码修改

    #include "XXX.h"

    #ifdef __cplusplus
    extern "C"
    {
    #endif

    (此处为原来c文件内容)

    #ifdef __cplusplus

    }
    #endif

    点赞 2 评论 复制链接分享
  • muqingfighting muqingfighting 2018-06-16 05:53

    函数名的下划线在本编译系统是无法使用的

    点赞 1 评论 复制链接分享
  • shengfei2010 shengfei2010 2018-06-17 13:41

    源码是C++6.0吧?现在你想用VS2010以上版本运行?肯定不行。从6.0以后完全改变了;你可以用VS2005\VS2008上的移植工具先移植成.net框架代码,把错误的修复好后,在用2010就可以打开哪。

    点赞 1 评论 复制链接分享
  • flyeaglethree flyeaglethree 2018-06-16 06:19

    加上extern "C"试一试

    点赞 评论 复制链接分享
  • weixin_42131883 weixin_42131883 2018-06-16 06:52

    在编译环境下缺少相应的函数,试一试其他的编译环境

    点赞 评论 复制链接分享
  • hhkj_lny 泉水叮咚888 2018-06-16 09:10

    你的问题编译通过啦,说明单个文件中语法被编译器通过,编译机制是基于单个文件的,而连接时,要将所有的文件连接到一块,根据你的情况,是在连接时出的错,应该是有重复的定义,建议采用二楼的方法对定义进行修改。

    点赞 评论 复制链接分享
  • weixin_38202526 weixin_38202526 2018-06-16 10:03

    头文件的定义方式不对
    #ifndef FIND
    #define FIND
    /*
    需要用到的函数
    */

    #endif

    点赞 评论 复制链接分享
  • stan1239 stan1239 2018-06-17 08:58

    #define N 100

    点赞 评论 复制链接分享

相关推荐