当前位置:首页 » 编程软件 » 在线代码编译

在线代码编译

发布时间: 2022-01-10 04:38:38

A. 网站源代码如何在线进行调试

开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的java SDK。如下图

三、生成导入AS所需配置文件(*.ipr)
编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh

等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具体内容如下图:

四、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK

②设置'Moles'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.
如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.
五、DEBUG源码
我们可以通过给刚导入的工程在'Moles'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

可以按照上图中'1'和'2'来添加Android Framework支持.

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图所示的图标
在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.
六、其它
代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.
我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。
也可以考虑使用build.gradle来解决该问题。

B. 如何实现在线编译调试代码

就是执行shell命令进行编译运行等操作。
看看这里:
http://www.php.net/manual/zh/ref.exec.php

温馨提示:代码有风险,编译需谨慎。做好过滤逻辑以免使得服务挂掉。

C. 这里的在线编辑器为什么不能即时编辑,连代码都露着

貌似教研室或者discuz禁止了,你看一下右边的“附加选项”,如果html能点击,那就可以正常状态编辑,不能的话只能像现在这样编辑。

D. 在线python代码编辑器怎么实现

仅仅是思路,其实网上肯定可以找到现成的代码:

  1. 上传的代码放在某个位置

  2. 用模板重新生成main,其中包括导入用户的文件

  3. 执行python命令运行main,并把输出和错误信息重定向到文件

  4. 监控进程结束,记录时间和分析输出

E. 如何在线编辑js源码调试

使用火狐浏览器。安装firebug。
安装后,按F12,打开firebug
找到脚本,启用脚本。
找到要调试的JS文件
在需要断点的地方,鼠标点下左侧
会出现一个红点
执行到这里的时候,就会进行调试了

F. 好的学习HTML的网站,最好是可以在线编辑代码的。

http://www.w3school.com.cn/

G. 用服务器做在线编译器

如果是针对传统使用方法的编程语言实现一个的话涉及的内容很杂,包括:
Web服务器+Web服务器与后端程序交互的组件(这个可以用现成的,我用的是nginx+FCGI)
后端程序
后端核心就是一个类似调用系统给的类似execl的API执行一下对应编译工具,用这个API时还得精心处理一下管道,把输出内容导出来显示回网页。
但是因为这类程序和OJ一样,是网络上的公共服务而且居然还允许用户上传代码编译执行,所以问题主要集中在安全处理上,而且安全问题的处理高度依赖操作系统。
以Linux为例,安全方面包括但不仅包括以下内容:
依赖环境构建、沙盒
运行身份,包括GID、UID
资源限制,包括socket、文件操作、核心转储大小、文件数、子进程数等等
syscall限制
执行时间限制,包括运行时间和CPU时间
文件系统压力
Windows下是另一堆问题要解决,比Linux复杂得多(也许是我不太会用Windows)。

我认识一人,自己实现了一个类似Haskell的东西,有和Go Playground差不多的在线运行网页,我问他怎么那么快把那么多东西都搞完了,他说,“整个语言就是用JS实现的,所以有浏览器就能运行,不需要后端”,这也是一种思路。

天互数据

H. 前端常用的几种在线代码编辑器各有什么优势

前端常用的几种在线代码编辑器各有什么优势
JS Bin - Collaborative JavaScript Debugging
介绍一款在线编辑器:jsbin jsbin的用法
优点:不需要登录,即发即预览
缺点:速度不靠谱
RunJS - 在线编辑、展示、分享、交流你的 JavaScript 代码
优点:国内访问速度快,可以上传图片(左下角)
缺点:需要登录,用户名
Create a new fiddle
优点:功能强大,历史记录给力,缺点:访问速度慢

I. 如何用java调用c语言编译器实现在线编译c语

要在java中调用c语言的库,需要使用Java提供了JNI。
举例说明
在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello Word.
现在分别从Java和C语言两部分说明:
1. Java 部分
首先定义一个HelloNative,在其中申明sayHello函数,函数要申明为Native 类型的.如下:
public class HelloNative {
public native void sayHello();
}

编译这个类,生成class文件:
javac HelloWorld.java

利用javah生成需要的h文件
javah HelloNative

生成的 h文件大概如下:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloNative */

#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloNative
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloNative_sayHello
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
2. C语言部分
根据上面生成的h文件编写相应的代码实现,建立一个 HelloNative.cpp用来实现显示Hello World的函数.如下:

#include <stdio.h>
#include "HelloNative.h"

JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *, jobject)
{
printf("Hello World!\n");
}

代码编写完成之后,我们再用gcc编译成库文件,命令如下;
gcc -fPIC -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux -shared -o libHelloNative.so HelloNative.cpp

这样就会在当前目录下生成一个libHelloNative.so的库文件.这时需要的库已经生成,在C语言下的工作已经完成了.
接下来需要在Java中编写一个程序测试一下.在程序前,需要将我们的库载入进去.载入的方法是调用Java的 System.loadLibrary("HelloNative");

public class TestNative
{
static {
try {
System.loadLibrary("HelloNative");
}
catch(UnsatisfiedLinkError e) {
System.out.println( "Cannot load hello library:\n " + e.toString() );
}
}
public static void main(String[] args) {
HelloNative test = new HelloNative();
test.sayHello();
}
}

但是再编译后,运行的时候,问题又出现了.
Cannot load hello library:
java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloNative.sayHello()V
at HelloNative.sayHello(Native Method)
at TestNative.main(TestNative.java:13)

载入库失败,但是库明明就是放在当前文件夹下的,怎么会载入失败呢?
用System.getProperty("java.library.path")查看,发现java.library.path中并不u存在当前的目录.主要有以下的几个解决办法:
1) 将生成的库复制到java.library.path有的路径中去,当然这样不是很好
2) 设置环境变量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ,将当前的目录加入到LD_LIBRARY_PATH中
3) 设置java 的选项,将当前的目录加入到其中 .java -Djava.library.path=. $LD_LIBRARY_PATH
这样之后程序就能够成功的运行了.可以看见显示的"Hello World!"了

J. 如何在线编辑代码

如何在线编辑代码
网站首页html代码方法/步骤:
找到FTP账号密码,链接服务器空间;
查找首页代码文件;
修改网站代码文件,若不支持在线修改,可下载代码文件进行修改,修改后上传覆盖即可。

网站首页的HTML代码,是打开网站的第一个页面里面包含的代码。
一般来说,这个文件会以index.htm,index.html ,index.asp,index.php等命名。要修改它,先要通过PTF进入网站空间服务器,找到首页代码的文件,同时也是需要您修改那个文件代码的权限。

热点内容
华为至尊平板电脑是什么配置 发布:2024-09-20 20:47:47 浏览:291
shell脚本字符串查找 发布:2024-09-20 20:47:44 浏览:273
如何在服务器上搭建linux系统 发布:2024-09-20 20:43:32 浏览:385
上传汽车保单 发布:2024-09-20 20:30:46 浏览:435
樱花服务器测试ip 发布:2024-09-20 20:10:39 浏览:279
炉石传说安卓怎么玩 发布:2024-09-20 20:09:59 浏览:312
ios开会员为什么比安卓贵 发布:2024-09-20 20:09:55 浏览:568
缓存服务器redis 发布:2024-09-20 20:09:01 浏览:75
优酷上传ts 发布:2024-09-20 19:55:58 浏览:273
minecraft怎么开服务器地址 发布:2024-09-20 19:52:14 浏览:651