导航:首页 > 源码编译 > 编译器兼容性常见问题

编译器兼容性常见问题

发布时间:2023-08-26 01:27:10

㈠ gcc与diab编译器的兼容性问题

不好意思刚看到,不同编译器编译的结果不能链接到一起,理由主要有以下两方面:一是不同编译器可能对变量名做不同处理,主要针对c++,好像没有什么编译器对c语言的变量名改变,举个例子,假设c++中的变量test_var,用两种不同编译器编译完该结果可能是Diab_test_var和GCC_test_var成为不同的变量,那么对于连接器来说就是不同的变量怎么会链接到一起是吧。c好像不存在文件名问题,但是c会遇到第二个方面。第二个方面就是不同的编译器会提供一些内部函数比如*(乘以)这个操作在编译器里有定义,有具体的代码来实现,如果编译器不同实现的函数名不同,不会链接到一起。当然还有更复杂的原因,可能我也不太了解。这些是我的理解,可能不全,但是可以肯定的是,不同编译器编译的二进制文件不能链接到一起使用。
至于你说的BSP是风河提供的会不会不兼容的问题,是这样的。通常对于BSP中的c语言部分,无所谓兼不兼容,因为c语言要是ANSI标准的话所有的编译器都会支持。BSP中的汇编部分跟编译器相关,但也是格式上的问题。一般vxworks提供gcc版的bsp(提供不提供其他编译器的BSP我不清楚,因为我们用的是gcc),所以应该是兼容的。假如真的不提供,可以按照gcc汇编语法,把BSP中的函数和变量以及伪指令部分更改成符合GCC语法即可,整体的汇编不需要更改,这部分工作很小的应该不难。
我知道的就这些,希望能帮到你。

㈡ FORTRAN编程兼容问题。我的编译器是Visual Studio 2013, Fortran为Intel Visual Fortran XE2013,

编译器不兼容,如gfortran或f95编译器里面,读写二进制文件是open语句中的(form='unformatted',access='direct',recl=m*n)
在visual fortran里面会出现问题,将三个选项合并为(form='binary')即可通过。

具体在哪里出现问题,编译器会提示的

㈢ 不同的c语言编译系统差别在哪里代码是否 存在兼容性的问题

ANSI
C
一般都可以支持,但也涉及到不同版本的C标准的兼容性问题,比如VC6不支持C99,VS2003,2005,2008,20120等就可以部分支持C99标准;而且很多标准并没有规定实现,不同的编译器实现可能不同,比如C标准只规定了short<=int<=long,但并没有规定字节数,导致不同的编译器数据类型的大小各不相同。

ANSI
C标准的话,不同的编译器一般都有不同的实现,需要分别实现。
在移植到不同编译器的时候这些都要注意处理,比较常规的做法是数据类型和函数等自己根据不同编译器封装成一个统一的格式,在程序中使用封装后的数据类型或函数,而不要使用原生类型,这样在移植时只需要在封装的地方根据编译器的不同进行修改就可以了,不需要再修改源代码。

㈣ C语言代码运行不出为什么

C语言代码运行不出现象可能有很多原因,以下是一些常见的原因和解决方法:

阅读全文

与编译器兼容性常见问题相关的资料

热点内容
吉利车解压 浏览:248
java输入流字符串 浏览:341
安卓软件没网怎么回事 浏览:785
dvd压缩碟怎么导出电脑 浏览:274
冒险岛什么服务器好玩 浏览:541
如何在服务器上做性能测试 浏览:793
命令序列错 浏览:259
javaif的条件表达式 浏览:576
手机app上传的照片怎么找 浏览:531
云服务器面临哪些威胁 浏览:748
c语言各种编译特点 浏览:177
路由器多种加密方法 浏览:604
程序员阻止电脑自动弹出定位 浏览:168
如何做服务器服务商 浏览:761
su剖切命令 浏览:726
devc编译背景 浏览:211
学习单片机的意义 浏览:51
音频算法AEC 浏览:911
加密货币容易被盗 浏览:82
苹果平板如何开启隐私单个app 浏览:704