高分 windows下可运行程序是exe,Linux运行后的程序是什么? 50
新手问题,虽然很丢人,但是就不匿名了。我的意思是,window下我用VS2010编完了程序,出来一个exe文件,然后我可以用这个exe在其他的电脑上运行。而其他的电脑上如...
新手问题,虽然很丢人,但是就不匿名了。
我的意思是,window下我用VS2010编完了程序,出来一个exe文件,然后我可以用这个exe在其他的电脑上运行。
而其他的电脑上如果没有VS2010,只要有window系统就可以了。
那么Linux的原理是什么啊?
我知道GCC可以运行C++程序,然后呢?出来一个什么东西呢?
这个东西如何可以在其他的linux机器上运行呢?
谢谢! 展开
我的意思是,window下我用VS2010编完了程序,出来一个exe文件,然后我可以用这个exe在其他的电脑上运行。
而其他的电脑上如果没有VS2010,只要有window系统就可以了。
那么Linux的原理是什么啊?
我知道GCC可以运行C++程序,然后呢?出来一个什么东西呢?
这个东西如何可以在其他的linux机器上运行呢?
谢谢! 展开
8个回答
展开全部
Linux不像Win有文件后缀这么一说。
比方WIN中.exe为可执行文件,.rar是压缩文件等等。
而linux中的文件名与文件种类毫无关系,可能在linux中一个命名为xxx.rar的文件只是一个文档文件一样,文件的类型不取决于后缀名,而取决于文件类型。我们通常在linux后面加上后缀是为了清晰的了解文件类型。换句话说,WIN中必须有后缀,LINUX中可有可无。
像你说的问题,可以在linux中安装一个WINE软件,用处是在LINUX中可以运行.exe 也就是WIN的程序。
可以在linux中安装wine,然后用wine安装vs,再用vs加载你的.exe就可以了。
linux与win之间传送文件的工具可以用SSH。
比方WIN中.exe为可执行文件,.rar是压缩文件等等。
而linux中的文件名与文件种类毫无关系,可能在linux中一个命名为xxx.rar的文件只是一个文档文件一样,文件的类型不取决于后缀名,而取决于文件类型。我们通常在linux后面加上后缀是为了清晰的了解文件类型。换句话说,WIN中必须有后缀,LINUX中可有可无。
像你说的问题,可以在linux中安装一个WINE软件,用处是在LINUX中可以运行.exe 也就是WIN的程序。
可以在linux中安装wine,然后用wine安装vs,再用vs加载你的.exe就可以了。
linux与win之间传送文件的工具可以用SSH。
更多追问追答
追问
谢谢回答,已提高悬赏
可能你对我的问题理解有点偏差
我在计算机A上基于linux编写的c++程序 用g++编译之后
g++ -o test test.cpp
之后出来一个 test的文件
然后我直接./test就可以运行这个程序了
我觉得和VS中 先编译 然后生成一个test.exe非常相似
test.exe就可以直接在其他电脑上运行了
问题:我把在linux下这个test可以直接在其他linux电脑上运行吗?
追答
哈哈,你自己都说出来了啊。
test.exe直接在其他电脑上运行的了的前提是存在执行此类型文件的语言环境。
那么linux同样的道理,只要是另外一个linux版本存在或者后安装了支持你文件的语言环境,就ok了啊。
就像.java 你要有jre环境才能运行,无论在那个机器上,有jre就可以运行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个需要看你编译的时候用的是什么平台架构,比如你在ARM上编译用的arm-linux-gcc编译器,那在ARM架构平台上是可以直接拿来跑的(你编译出来的东西名字完全是自己定的,没有特殊的后缀名,可以没有后缀名),但是在POWERPC上就不能跑,因为他们不是同一个平台架构的。
windows是闭源的,都是同一种架构,所以你编出来的.EXE是可以在其他WINDOWS下跑的。
windows是闭源的,都是同一种架构,所以你编出来的.EXE是可以在其他WINDOWS下跑的。
追问
谢谢回答,已经提高了悬赏
请问你的意思是我在linux桌面版编写的程序在arm版上不能运行吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.编译(g++为C++的编译器 gcc为标准c编译器)
g++ test.cpp -o test
或
g++ test.cpp -o test.exe
2.编译后的文件可以直接运行,
./test 直接回车就运行了。注意test前面是点号和 反斜杠
g++ test.cpp -o test
或
g++ test.cpp -o test.exe
2.编译后的文件可以直接运行,
./test 直接回车就运行了。注意test前面是点号和 反斜杠
追问
这个我会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gcc,g++编译出来的同样是个可执行的程序(生成的文件一般也能复制到其它linux下执行),不过不向window有个明显的.exe扩展名。
linux编译的程序一般是不带扩展名,就算是有扩展名也是区分文件类型用的,跟程序能不能执行没太大关系。
gcc ,g++ 编译出来的一般有3种, .a 静态库, .so 动态库 ,没扩展名的执行程序。
如果你把程序复制到/usr/bin下,在终端(类似windows 的cmd)输入你编译好的程序名就能执行(你要给文件加上x执行权限)。
linux编译的程序一般是不带扩展名,就算是有扩展名也是区分文件类型用的,跟程序能不能执行没太大关系。
gcc ,g++ 编译出来的一般有3种, .a 静态库, .so 动态库 ,没扩展名的执行程序。
如果你把程序复制到/usr/bin下,在终端(类似windows 的cmd)输入你编译好的程序名就能执行(你要给文件加上x执行权限)。
追问
谢谢回答,已经提高了悬赏
请问 我关联了相应的库文件
比如 g++ -o test test.cpp -l libary_a
那么在另一台设备上也必须有对应的 libary_a对吗?
如何将这个 lib文件也封装到编译完之后的可执行文件里呢?
有什么建议吗?
追答
是的。
只有静态库能编译到你的程序里,就不需要其它系统里有,你要确定你链接的库是静态。因为我对g++,gcc命令使用不熟,不能给出例子,网上有很多,你可以找找。
参考:
g++ -o test test.cpp /usr/lib/libary_a.a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询