社区
C++ 语言
帖子详情
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
winematrix
2010-01-21 08:27:53
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
...全文
972
29
打赏
收藏
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OnSmile100
2010-12-29
打赏
举报
回复
不清楚也,我现在也想知道呢
ForestDB
2010-01-22
打赏
举报
回复
用交叉编译,编译器是在Windows下运行的,编译出来的目标代码是Linux的,然后目标程序能在Linux下运行。
在Windows下写好程序,不涉及平台的东西,只有标准库,然后在Linux下重新编译。
nscboy
2010-01-22
打赏
举报
回复
应该能够做到代码层面上的兼容.而不是二进制
IT_lau
2010-01-22
打赏
举报
回复
java还混个屁
cht19790826
2010-01-22
打赏
举报
回复
如果用标准库的话应该可以的!
herman~~
2010-01-21
打赏
举报
回复
貌似不行吧
拿到linux下用GCC编译一下再运行吧
traceless
2010-01-21
打赏
举报
回复
[Quote=引用 22 楼 winematrix 的回复:]
引用楼主 winematrix 的回复:
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
我的问题没有表达清楚。
主要应用是用C++实现算法, 不涉及底层的调用。针对这样的需求,假设我在VC上做了一个程序,一般需要做哪些变动才能在linux下编译通过。
[/Quote]
Faint~~~
那你的意思就是重新编译,不是直接拿去运行了
LZ 那你去编译过没有呀,编译了不对再说。。。
wyjjsn
2010-01-21
打赏
举报
回复
底层库不一样。
winematrix
2010-01-21
打赏
举报
回复
[Quote=引用楼主 winematrix 的回复:]
请问一下在visual studio C++ 下开发的程序一般能直接在linux 下运行吗?
[/Quote]
我的问题没有表达清楚。
主要应用是用C++实现算法, 不涉及底层的调用。针对这样的需求,假设我在VC上做了一个程序,一般需要做哪些变动才能在linux下编译通过。
traceless
2010-01-21
打赏
举报
回复
[Quote=引用 18 楼 winematrix 的回复:]
谢谢大家的回复,可能我没有说清楚,我主要是用C++实现算法,不涉及底层的调用。
在windows下有什么C++的编译器可以和linux下的GCC 实现最好的兼容。
[/Quote]
你需要用的是一种叫交叉编译的编译器和方法
google:windows下的交叉编译
traceless
2010-01-21
打赏
举报
回复
[Quote=引用 17 楼 dontkissbossass 的回复:]
引用 15 楼 traceless 的回复:
是的,printf确实属于系统调用,依赖于系统。即使是只有一句:int a = 2;也是不能直接拿到
linux下直接运行的。
对于我们常所说的可执行文件,在windows下和linux下分别编译出来的所被“描叙”的规则
是不一样的,他们的文件头格式不一样。当可执行文件被操作系统加载放入内存后,在内存
中的代码映像也是不一样的。
当然如果你编译成纯二进制文件,没有文件头格式,那是另外一回事了。
老大,如果只是用标准,拿VS下的愿代码,应该可以去Linux下GCC编译的吧,毕竟都认标准(除非编译器不支持)
库函数,用跨平台的库,QT,Kurses,等等,应该是可以的
[/Quote]
呵呵 我好像这里说的也没有歧义吧
我没有说源代码的再次编译呀,我说的是在vs编译,然后直接拿去Linux下运行。。。
柯本
2010-01-21
打赏
举报
回复
windows 下也有GCC编译器的
winematrix
2010-01-21
打赏
举报
回复
谢谢大家的回复,可能我没有说清楚,我主要是用C++实现算法,不涉及底层的调用。
在windows下有什么C++的编译器可以和linux下的GCC 实现最好的兼容。
DontKissBossAss
2010-01-21
打赏
举报
回复
[Quote=引用 15 楼 traceless 的回复:]
是的,printf确实属于系统调用,依赖于系统。即使是只有一句:int a = 2;也是不能直接拿到
linux下直接运行的。
对于我们常所说的可执行文件,在windows下和linux下分别编译出来的所被“描叙”的规则
是不一样的,他们的文件头格式不一样。当可执行文件被操作系统加载放入内存后,在内存
中的代码映像也是不一样的。
当然如果你编译成纯二进制文件,没有文件头格式,那是另外一回事了。
[/Quote]
老大,如果只是用标准,拿VS下的愿代码,应该可以去Linux下GCC编译的吧,毕竟都认标准(除非编译器不支持)
库函数,用跨平台的库,QT,Kurses,等等,应该是可以的
_JeffreyWu
2010-01-21
打赏
举报
回复
看什么什么项目了.
如果只是个类hello world的,就可以喽
traceless
2010-01-21
打赏
举报
回复
是的,printf确实属于系统调用,依赖于系统。即使是只有一句:int a = 2;也是不能直接拿到
linux下直接运行的。
对于我们常所说的可执行文件,在windows下和linux下分别编译出来的所被“描叙”的规则
是不一样的,他们的文件头格式不一样。当可执行文件被操作系统加载放入内存后,在内存
中的代码映像也是不一样的。
当然如果你编译成纯二进制文件,没有文件头格式,那是另外一回事了。
wangxing221
2010-01-21
打赏
举报
回复
不行,必须重新编译,比如printf啊,在windows下和linux下的实现是不同的,都用到了各自的系统调用。还有new,delete之类的,必须重新编译才能运行,而且前提是标准C/C++,不能有系统的API。
xutaozero21
2010-01-21
打赏
举报
回复
一般直接运行是不行的,除非用wine
s446721902
2010-01-21
打赏
举报
回复
without api
traceless
2010-01-21
打赏
举报
回复
LZ说的是直接运行,不是再次编译。
抛开系统API。就拿一个简单printf("hello,world!\n");来说。。。。
加载更多回复(9)
Visual
Studio
– 借助远程
Linux
服务器环境在
Visual
Studio
中编写和远程调试
Linux
C++
程序
首先需要在
Visual
Studio
Installer中安装使用
C++
的
linux
开发
的工具集 等待使用
C++
的
Linux
开发
的工具集安装完成,并重启
Visual
Studio
。 1.2 准备可远程的
Linux
服务器以及在远程服务器安装远程调试环境 1.2.1 明确...
用
Visual
Studio
开发
Linux
程序
此前在
Linux
下
开发
应用
程序
有2种办法,一种是在Windows上编写好,然后复制到
Linux
上在命令行中编译和执行。另一种是采用
Linux
的IDE,用过Code::Blocks,勉强够用,不过一旦遇到这个
开发
工具的BUG就很麻烦了,很久也...
使用
Visual
Studio
2022
开发
Linux
C++
应用
程序
(二)
使用
Visual
Studio
2022
开发
Linux
C++
应用
程序
Build and Debug
C++
with WSL 2 Distributions and
Visual
Studio
2022 References Build and Debug
C++
with WSL 2 Distributions and
Visual
Studio
2022 - ...
使用
Visual
Studio
2022
开发
Linux
C++
应用
程序
使用
Visual
Studio
2022
开发
Linux
C++
应用
程序
Visual
Studio
工程实践
开发
C++
Visual
Studio
工程实践
开发
C++
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章