你的问题问得模棱两可的。
按照我的理解有三个意思,1。在windows或mac系统下写的可以正常编译的C源代码,能不能再linux直接编译执行。
2,在windows或mac系统下编译好的C程序可以不可以直接拿到linux下执行。
3在linux系统下可不可以执行C语言写的程序。
当然应该不可能是地三个意思了。
如果是第二个意思,那么答案是:肯定不能执行。因为C语言是于系统有关的。所以在window下编译的可执行文件,和在linux下是不一样的。
如果是第一个意思。那么就要看情况了。
如果你的源代码完全是使用的标准C写的那么应该是可以的例如写一个hello world程序。
如果你用了window的系统调用。那么就不行了。
先确保你的c程序没有调用win下专有的api,比如win32api或net等,
如果有,就需要另写接口层。最好能只调用posix库或跨平台的库,或完全原创的算法库。
c程序满足和win专有接口能脱离直接关系,就能在linux下编译。
Linux中启动另一个可执行文件或程序用system函数最理想了,这个函数将在你编写的那个程序的内部启动另一个程序,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序的退出码;如果无法运行这个程序,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:
#include <stdlibh>
int system(const char string);
参数string是将要执行的程序的命令字符串。
还有一种执行外部程序的方法是exec系列函数,但这个系列的函数都是将当前进程的替换成新进程,也就是说原来的进程不存在了。
redhat linux 默认安装选项已装有 gcc 和 glibc。是可以编译c程序的。以你的问题的大致 *** 作为
编译: hello 为编译链接后的可执行性文件,helloc为源文件
gcc -o hello helloc
运行:
/hello
linux终端下,编译C语言程序步骤为:
采用vi进行源代码编写,编写完成后,:wq存盘退出,如:
vi testc
在命令行下,运行gcc编译程序,生成执行码,如:
gcc -o test testc
-o 表示指明生成的执行码名称
运行编译后的执行码
/test
GCC是Linux *** 作系统下一个非常重要的源代码编译工具,C、C++都可以通过gcc编译后来执行,案例如下: 在屏幕上打印"Hello,Linux"
#include<stdioh>#include<stdlibh>
int main(int argc,char argv)
{
printf("Hello,Linux\n");
exit(0);
}
将源文件保存为helloc,开始进行编译
$gcc -o hello helloc编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行
$/hello在屏幕上,将会看到打印结果:Hello,Linux
以上就是关于用C语言编写的程序,能不能直接在Linux下运行全部的内容,包括:用C语言编写的程序,能不能直接在Linux下运行、怎样将windows下写的c程序在linux下编译运行,谢谢、我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)