在实验室做项目的时候遇到了这个问题,终于整明白了。

一般来说这个错误出现在类似以下的语句中

extern "C" int yylex(void);
extern "C" int yyparse( void );
extern "C" int yyerror(const char *fmt, ...);

我们看extern 这个关键字,是C++在调用其他语言的时候用来拓展函数的,extern "C" 就是说当我们在一个项目中出现了C、C++混编,C++文件中调用了C的函数,那么需要将这个函数拓展过来用。

但是extern "C" 也被编译器看作是函数的类型参数之一,因此extern "C" int yylex(void);和int yylex(void);如果同时在项目里出现,则会出现error2732,也就是定义冲突。

解决方案:

找到函数的声明部分和调用部分,在两处都加上如下代码:

#ifdef __cplusplus
extern "C"
{
#endif
int yyparse( void );
//。。。各种需要的函数声明
#ifdef __cplusplus
}
#endif

  

编译,就可以通过啦啦啦。

重点注意函数初次声明和拓展声明两处,如果发生了声明则一定要同时含有或不含有相同的extern关键字。

OK,继续我的搭环境之路T^T

BY XHYU

VS2010 中 error 2732: 链接规范与的早期规范冲突 的解决的更多相关文章

  1. vs2010中TargetName与链接器输出名不一致

    当出现解决方案生成正确,但是无法执行.exe文件,即系统无法找到指定文件时,提示有:MSB8012: TargetName(,,,) 与 Linker 的 OutputFile 属性(,,,)不匹配. ...

  2. linux中ERROR: The partition with /var/lib/mysql is too full!解决的方法

    今天在ubuntu上遇见这个问题.应该是我的第一分区太小了. 解决的方法: bey0nd@wzw:/var$ cd /var bey0nd@wzw:/var$ rm -rf log 我们删除日志文件 ...

  3. VS2010中汉字拷贝到Word出现乱码问题解决

    VS2010中的汉字拷贝到Word时出现乱码,有三种解决方法: 一.粘贴时,选择“仅保留文本”.如图: 二.先拷贝粘贴到记事本文件内,此时会自动过滤格式信息,再从记事本拷贝到Word. 三.使用转换软 ...

  4. VS2010中如何将动态链接库改成静态链接库

    VS2010中如何将动态链接库改成静态链接库 VS2010静态编译生成的.exe可执行文件,可以免安装免DLL在其他电脑直接运行. 静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态 ...

  5. VS2010中添加lib库引用

    VS2010中添加lib库引用: 1 菜单  项目---> 属性--->配置属性-->链接器---->输入---附加依赖项,  加入库名,如: my_API.lib; 或是在c ...

  6. 【转】Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)

    在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...

  7. VS2010关于error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    前段时间自己的系统一直在安装更新.今天突然打开VS2010当运行的时候一直出现error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏这种错误.然后就百度 解决的方法: 1.项目\属 ...

  8. vs2010中使用luabind

    第一部分:在vs2010中生成luabind静态库和动态库 一.前期准备 1.安装boost 下载boost并解压到 D:\mylua\boost_1_56_0,进入 D:\mylua\boost_1 ...

  9. VS---《在VS2010中 使用C++创建和使用DLL》(002)

    VS---<在VS2010中 使用C++创建和使用DLL>(002) 前面初认识了创建和调用DLL,在VS工程下可以通过在 同一工程.不同工程 下创建和调用DLL.现在,同一工程下创建和调 ...

随机推荐

  1. shell写多行到文件中

    用cat或者echo命令输入多行数据到指定文本 #!/bin/sh ( cat <<EOF start() { echo "start" } EOF ) > Ma ...

  2. 简单日历,纯js

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  3. PHP中使用正则表达式详解 preg_match() preg_replace() preg_mat

    PHP中嵌入正则表达式常用的函数有四个: 1.preg_match() :preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 . 语法:int preg_match( ...

  4. JSP标准标签库(JSTL)--核心标签库 c

    核心标签库是JSTL中最重要的部分,可以完成输出,判断,迭代等操作 功能分类: 1. 基本标签: <c:out>:输出属性内容 <c:set>:设置属性内容 <c:rem ...

  5. LayoutInflater 类的使用

    转 http://yxwang0615.iteye.com/blog/1711147 一个Activity里如果直接用findViewById(),对应的是setConentView()的那个layo ...

  6. Application对象

    Application对象报讯是应用程序参数的额,多个用户可以共享一个Application.用于启动和管理ASP.NET应用程序. Count  属性 获取Application对象变量的个数,集合 ...

  7. Hibernate中用纯SQL查询,并通过hibernate分页返回List<对象>

    @SuppressWarnings("unchecked") public List<Article> getPageQueryList(final int pageN ...

  8. FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext简介

    今天在用Spring时遇到一个问题,提示找不到applicationContext.xml文件.原来是在加载这个文件时调用的方法不太合适,所以造成了程序找不到项目下的xml配置文件. 我们常用的加载c ...

  9. char*赋值在常量区,不可以修改

    char*赋值在常量区,不可以修改,要想修改,用数组. char* = "abc";*(pCh+1) = 'k';//编译正常,运行报错. char pCh[] = "a ...

  10. PAT (Advanced Level) 1043. Is It a Binary Search Tree (25)

    简单题.构造出二叉搜索树,然后check一下. #include<stdio.h> #include<algorithm> using namespace std; +; st ...