java如何编译c或c++文件

使用g++或者cl.exe都可以,编译已有的cpp文件,如果编译有错如何获得错误信息,另外限制运行的时间... 使用g++或者cl.exe都可以,编译已有的cpp文件,如果编译有错如何获得错误信息,另外限制运行的时间 展开
 我来答
tattackor
2015-06-09 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:891万
展开全部
  1. java是不能够编译C/C++文件的。他们原理完全不同。背后的运行机制也完全不一样。

    C/C++源文件只能够用C/C++的编译器来编译。

  2. 以GCC编译器为例,整个编译可以分为四步。
    第一步是预处理,包括语法检查等工作。
    gcc -P abc.c
    第二步由源程序生产汇编语言代码。
    gcc -S abc.c
    会生成abc.s文件,这个文件里就是汇编代码。
    第三步编译器生成目标代码,一个源文件生成一个目标代码。
    gcc -c abc.c
    会生成abc.o
    第四步连接器从目标代码生成可执行文件。
    gcc abc.o
    目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。

xabbca
2014-08-05 · 超过17用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50.1万
展开全部
try {
    final long timeout = 3000; // 限制的执行时间(毫秒)
    String cmd = "g++ *.cpp -o your_app_name";
    final long starttime = System.currentTimeMillis();
    final Process process = Runtime.getRuntime().exec(cmd); // 执行编译指令
    if (process != null) {
        InputStream is = process.getInputStream(); // 获取编译命令输出
        InputStream error = process.getErrorStream(); // 获取编译命令错误输出
        new Thread() {
            public void run() {
                while (true) {
                    try {
                        sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if (System.currentTimeMillis() - starttime > timeout) {
                        // 超时
                        process.destroy();
                    }
                }
            }
        }.start();
    }
} catch (IOException e) {
    e.printStackTrace();
}

 大概是这个意思,没调试运行过。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友527e597
2014-08-05 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:85.5万
展开全部
java是不能编译c或者c++文件的,g++和cl.exe都能编译cpp文件
g++ 源文件 -o 目标文件
cl.exe很少在命令行下调用吧,
错误信息一般都会在屏幕上打印出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0240c618
2014-08-05 · TA获得超过220个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:72.1万
展开全部
如果你说的只是java的话是不可能编译的.如果说的是java的集成开发环境如Eclipse的话,安装G++的插件就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq1096195805
2014-08-05 · 超过16用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:41.7万
展开全部
什么意思,没明白。
java是用jdk中的javac去编译的。
c的东西用g++编译的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式