编译

C#-JudgeSystem判题系统-开放实验总结

我是研究僧i 提交于 2019-12-10 17:47:50
花了一周的时间去做这个实验中间断断续续完成不同的部分,按照实验过程来一步一步完成感觉实验流程还是相当合理的 上图就是最后的成品,其中包括 JudgeCilent客户端 完成部分: 1、可以提供五种测试状态的显示,包括网络异常,编译失败,输入错误(超时),结果错误,接受,五个状态 2、可以对无输入程序进行测试 3、可修改ip地址与端口 可提高部分: 1、由于该程序只是辅助测试服务器的使用的,所以并没有做一下界面的优化比如线程运行优化来避免等待服务器返回时界面不响应的现象 JudgeServer服务器 完成部分: 1、错误处理,并测试在判题过程的几种意外下能正常运行,以及客户端无连接后会在30秒超时时主动断开连接避免系统空连接过多造成的系统开销 2、多线程处理,在并发速度为10ms一次连接下,并且带有不同的错误情况下,系统依然能正确运行,高并发下测试判题并没有错误 可提高部分: 1、服务器与客户端的交互仍有不完善的地方,一是不方便拓展,一旦服务器修改,客户端必须进行修改,因为数据是按照一定规则分次发送的,而不是结构化一次性发送 2、暂时没有提供自定义的监听端口与gcc编译程序地址与test编译测试工作目录,这里通过相对地址也就是如图的两个文件夹存放,监听地址固定为8080而没有设置成运行时确定 CompileTest编译类库 完成部分: 1、编译与测试输入输出结果,无输入则通过\r

C#-JudgeSystem判题系统-一个简单的HTTPServer

我的未来我决定 提交于 2019-12-10 17:36:17
在原来的HTTPServer项目解决方案中添加新的控制台SocketServer项目 添加新的项目后可以看到解决方案中有两个项目 建立好项目后我们可以进行编程 进行编程前我们需要了解c# socket编程以及http的规范 1.socket编程 首先我们决定使用tcp协议,拿到一张socket的tcp连接过程 第一个建立一个c# socket套接字对象: Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 其中对象构造函数需要传入三个对象用于建立合适的socket连接 AddressFamily.InterNetwork代表使用ipv4协议 SocketType.Stream基于流 ProtocolType.Tcp协议为TCP 建立socket对象后我们需要绑定ip和端口: ip使用0.0.0.0作为监听端口 port使用7777作为监听端口 IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 7777); 第三步是注册监听端口: s.Listen(0); 第四步是进入接受状态: Socket temp = s.Accept(); 此时程序阻塞等待客户端连接 连接成功程序才能继续执行

如何在cmd中编译和运行java源文件

你。 提交于 2019-12-10 04:11:22
如何在cmd中编译和运行java源文件 首先写一个名为HelloWorld.java的java源文件,存储在如C:/java/src的地址,我们再假设待会要存储的位置是C:/java/bin,则我们做一下工作 首先,进入cmd环境,输入”C:”+回车进入C盘。然后输入“C:/java/src”+回车进入“C:/java/src” 再输入javac 编译该文件,如果使用javac HelloWorld.java,则在当前目录下生成一个字节码文件。如果使用javac –d则可以在参数-d指定目录下生成字节码文件。如上题要求,我们输入javac –d C:/java/bin HelloWorld.java或者javac –d ../bin HelloWorld.java则可以在我们指定的位置C:/java/bin生成字节码文件了,这时,只要我们输入java HelloWorld。就可以运行该程序了。 如果该HelloWorld.java文件带包,则使用javac可以在制定目录下生成带包的字节码文件,在运行时,必须输入完整的类名,其中,完整的类名包括类名和它所在包的包名,所以,如果是package day01.shangwu包中的字节码文件,运行指令应为java day01.shangwu. HelloWorld。 另外,如果设置了CLASSPATH,也就是告诉了java虚拟机,

再探C++Primer (1) 关于编译及IO流

放肆的年华 提交于 2019-12-07 19:34:50
之前在看primer的时候,第一章的内容一般都会跳过去,今天打算从头再看一次的时候,反而注意到了第一章的东西,很简单的东西,也学到了一些之前没有关注的内容。 ##编译、运行程序# 在之前都是使用现成的IDE来编译运行程序,但是并没有想过究竟编译是个怎么样的过程。在学习linux的过程中,曾经了解过一些编译的过程:编译会将cpp文件内容先预处理,然后用编译器翻译成汇编语言文件,再经汇编器翻译成.o文件,不同的.o文件经由链接器连接到一起成为机器可以识别的.out文件(windows中的.exe)。 那么在windows中cpp文件是怎么由vs2015之类的IDE来编译链接的呢? 在linux中,编译器是gnu,使用gnu编译一个cpp程序的步奏是使用命令g++,而在windows中编译器是vc/vc++,在vs中集成了vc/vc++编译器,所以我们可以使用vs来编译c++程序文件。 随便百度一下,就可以知道windows控制台编译c++程序文件的命令是cl, 格式为CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...],关于具体的命令去查阅文档就可以了,现在只需要知道在cmd控制台,当前目录下的a.cpp文件编译命令是cl a.cpp就可以了。

ubuntu下编译webkit

泪湿孤枕 提交于 2019-12-07 17:36:17
1. 下载webkit源码,由于ubuntu版本为10.04,所以下载的webkit版本也比较靠前。 2. 解压到文件夹下,运行/WebKit-r58572/WebKitTools/Scripts/build-webkit --gtk 3. 遇到错误: 1). Warning: not running gtk-docize. automake: cannot open < gtk-doc.make: No such file or directory Failed to setup build environment using 'autotools'! 解决方法: sudo apt-get install gtk-doc-tools 2). checking which Unicode backend to use... icu checking for icu-config... no configure: error: Cannot find icu-config. The ICU library is needed. Failed to setup build environment using 'autotools'! 解决方法: sudo apt-get install libicu-dev 3). checking for ENCHANT... configure:

Qtopia 2.2.0的编译和移植(二):编译脚本

随声附和 提交于 2019-12-07 01:07:02
前文提到了qtopia 2.2.0源代码编译移植的一些问题和注意事项,为了提高编译效率和可重复性,我编写了两个Shell脚本来实现自动修复源码错误和代码编译安装。 源码错误修正脚本,参照前文中指出的错误,如发现有其它错误请自行在脚本中添加修改命令 #! /bin/bash # modify qtopia source files to fix some compile errors. QT_ROOT_DIR=$PWD/qtopia-free-2.2.0 pushd $QT_ROOT_DIR # 1: pthread_yield --> sched_yield pushd qtopia/src/3rdparty/plugins/codecs/libffmpeg sed -i 's/pthread_yield/sched_yield/g' mediapacketbuffer.h popd # 2: fix ptrdiff_t is not a name type error pushd dqt/src/tools/ sed -i '52i\ #include <cstddef>\n #include "stddef.h" ' qvaluelist.h popd # 3:append ,remove function add object pushd qt2/src/tools sed

Windows下 编译Blender2.6

别等时光非礼了梦想. 提交于 2019-12-06 21:27:13
编译方法参考官方教程:http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows 本次编译的环境和准备的软件如下: Windows 7 64bit VS2008 SP1(注意,必须是VS2008,其他版本无法编译,因为官方依赖库比如boost是vc90的) Tortoise SVN CMake( 请下载64bit版本的,不能用32位的) 请记住我们所有的软件和配置都应该是64位的 1. 使用Tortoise SVN下载代码和依赖库。 在D盘根目录创建目录BlenderSVN,然后下载代码: cd D:\BlenderSVN svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/blender blender 因为是编译64位的Blender,所以使用如下命令下载依赖库: svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64 lib/win64 因为依赖库非常大,有2.8G,所以下载起来很长时间。下载过后的目录必须是这样的: BlenderSVN ----blender ----lib -------win64 2. 使用CMake生成工程文件。

C++ 匿名namespace的作用以及它与static的区别

一笑奈何 提交于 2019-12-06 20:18:31
一、匿名namespace的作用 在C语言中,如果我们在多个tu(translation unit)中使用了同一个名字做为函数名或者全局变量名,则在链接阶段就会发生重定义错误,为了解决这个问题,我们可以在定义这些标识符(identifier)的时候加上static关键字修饰以限制它只在一个tu范围内可见。 C++继承了C语言中static关键字的这个用途,我们依旧可以使用static来避免多个tu中使用同一个标识符带来的重定义问题。此外C++还提供了另一种特有的方式,那就是匿名namespace:一个没有指定名字的namespace被称为一个匿名namespace;在一个tu中可以出现多个匿名namespace,并且相同层次的匿名namespace实际上被合成为同一个;出现在不同tu的匿名namespace中的相同标识符相互独立不会发生冲突,因此我们可以把那些只希望在同一个tu范围可见的全局标识符放入一个匿名namespace中,效果与前面加static相同。 二、匿名namespace与static的区别 一个全局标识符被static修饰后它的linkage变为internal linkage,这就是为什么不同tu中的相同标识符不会发生冲突的原因。 而匿名namespace却并不会改变在它内部定义的标识符的linkage,它用来避免名字冲突所采用的手段同C+

linux 编译 android-apk 安装到window下的模拟器(步骤)

感情迁移 提交于 2019-12-06 17:32:39
1. 首先在 windows 环境下编写 了工程文件 a) 2. 打开 linux 开发环境( android4.0 ) a) 文件夹 /android/android4.0( 我自己指定的,每个人的都不一样 ) 3. 将运行环境的脚步文件运行一下以便可以 mm a) /android4.0/bulid/ b) 找到 envsetup.sh c) 运行命令: . envsetup.sh d) 注意,所以得操作都要在这个终端下进行 4. 将工程文件拷贝到指定目录下 android/android4.0/development/apps/ 5. 删除一些文件 a) 只留下 /res,/src, AndroidManifest.xml 三个文件 b) 在工程文件夹中创建一个名为 Android.mk 文件 6. 编译 a) 工程文件在 android4.0/development/apps/MyAnimation b) 进入以后,输入命令 mm c) 如果没有报错的话就进行下一步操作 7. 拷贝 apk 到 windows 下 a) 生产的 apk 文件在特殊的文件夹下面,路径为: android/android4.0/ out /target/product/generic/system/app b) apk 拷贝出来 8. 安装 a) 点击开始 - 输入 cmd b) 在

Qtopia 2.2.0的编译和移植(一)

一曲冷凌霜 提交于 2019-12-06 10:20:26
新项目中需要做界面,决定使用Qt框架开发,刚好我在前一个项目中是做这个的,就接手了。由于上一个项目我选用的是Qt-4.7的版本,包括PC版本和嵌入式版本,而这次项目打算用半现成的Qtopia2.2.0版本,考虑到库的存储空间大小和性能需求,不得不说Qt4.7的嵌入式版本编出来的库很占用空间。因为Qtopia2.2.0是别的公司 弄好的,不过还是需要自己理清整个编译、移植的步骤过程,不然以后开发会很麻烦,还好有点经验,只是Qtopia2.2.0确实有点旧了,2005的版本,我现在都找不到官方的版本了。整了两天,基本是搞定了它的编译和移植过程,顺便写了个自动化脚本,自我感觉良好。 开发环境 PC机:Ubuntn 12.10 Server(Linux 3.5.0),gcc-4.7.2(g++) 目标机:ARM9, Linux 2.6.24 编译前环境准备 X11库 Qtopia编译过程中需要使用X11 里面的一些头文件来生成一些工具,主要是qt2的编译,当然里面的dqt编译肯定是需要用到X11的头文件和库的。使用以下命令即可安装需要X11的环境: <!-- lang: shell --> sudo apt-get install libx11-dev libxext-dev libxtst-dev uuid库和xmu库 编译过程中会使用到这些库,安装命令: <!-- lang: