StoryCode

judge.설치.마지막에 오류가나는데 이유를 모르겠음.

QinadaoU OnlineJudge
반응형

# 참조 : http://www.secmem.org/blog/2019/10/21/Judge-Server/

# 참조 : https://opensource.qduoj.com/#/judger/api

 

환경)

Ubuntu 22 LTS

Docker 20.10.16

 

설치)

$ sudo apt-get update
$ sudo apt-get install libseccomp-dev
$ sudo apt-get install gcc
$ sudo apt-get install cmake
$ sudo apt-get install git

$ git clone https://github.com/QingdaoU/Judger.git
$ cd ./Judger
$ mkdir build && cd build && cmake .. 

### make 시 src/argtable3.c:4406:11: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=] 4406 |     *dest = 0;
### CMakeFiles/libjudger.so.dir/flags.make 을 아래처럼 수정
### C_FLAGS = -g -Wall -Werror -O3 -std=c99 -pie -fPIC --warn-stringop-overflow=0 
$ make && sudo make install

### 참조 : https://opensource.qduoj.com/#/judger/api
$./libjudger.so --help

실행예제 )
$ output/libjudger.so --max_cpu_time=1000 --max_real_time=2000 --max_memory=536870912 --max_process_number=200 --max_output_size=16384 --exe_path="/home/Desktop/tester/test.o" --input_path="/home/Desktop/tester/input.txt" --output_path="/home/Desktop/tester/output.txt" --error_path="/home/Desktop/tester/error.txt" --uid=0 --gid=0 --seccomp_rule_name="c_cpp"
{
    "cpu_time": 0,
    "real_time": 0,
    "memory": 0,
    "signal": 0,
    "exit_code": 0,
    "error": -5,
    "result": 0
}

 

sudo chmod 555 /usr/lib/judger/libjudger.so

cd Judger/bindings/Python
sudo python3 setup.py install

cd Judger/demo
sudo python3 demo.py
{'cpu_time': 0, 'real_time': 0, 'memory': 0, 'signal': 0, 'exit_code': 0, 'error': -5, 'result': 0}

 

반응형

'QinadaoU OnlineJudge' 카테고리의 다른 글

OnlineJudgeDeploy.설치.소스수정  (0) 2022.05.19

Centos6.GLIBC2.28.forDockerInstall

Server 관리/Linux
반응형

참조 ) https://www.cnblogs.com/FengZeng666/p/15989106.html

 

기본설치방법

wget  https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz

tar -xf glibc-2.28.tar.xz -C /usr/local/

cd /usr/local/glibc-2.28/

mkdir build

cd build/

../configure --prefix=/usr/local/glibc-2.28

 

오류날때 glibc 오류날때

 

yum install gcc -y
yum -y install centos-release-scl

yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

scl enable devtoolset-8 bash

echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz

tar -xzvf make-4.2.tar.gz

cd make-4.2

sudo ./configure

sudo make

sudo make install

sudo rm -rf /usr/bin/make

sudo cp ./make /usr/bin/

make -v
wget  https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz

tar -xf glibc-2.28.tar.xz -C /usr/local

cd /usr/local/glibc-2.28/

mkdir build

cd build/

yum install -y bison

sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make  //make 运行时间较长,可能会有半小时

make install
strings /lib64/libc.so.6 |grep GLIBC

 

 

반응형

명령어 및 Eclipse 연동

Maven
반응형
 Maven 자바 프로젝트 생성 상황 명령
기본 mvn archetype:generate -DgroupId=com.newlecture -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart

* 기본 베이스 maven project 가 maven-archetype-quickstart 이다.
생성가능한 베이스 maven project 보기 1) mvn archetype:generate 엔터 치면 목록 나옴.
2) 목록에서 "Choose archetype" 텍스트 이하에 생성가능한 베이스 maven proejct 가 나타남.
3) 
     
     

 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-help-plugin:3.2.0:describe (default-cli) on project javaprj: You must specify either: both 'groupId' and 'artifactId' parameters OR a 'plugin' parameter OR a 'cmd' parameter. For instance:
[ERROR]   # mvn help:describe -Dcmd=install
[ERROR] or
[ERROR]   # mvn help:describe -Dcmd=help:describe
[ERROR] or
[ERROR]   # mvn help:describe -Dplugin=org.apache.maven.plugins:maven-help-plugin
[ERROR] or
[ERROR]   # mvn help:describe -DgroupId=org.apache.maven.plugins -DartifactId=maven-help-plugin
[ERROR]
[ERROR] Try 'mvn help:help -Ddetail=true' for more information.
[ERROR] -> [Help 1] mvn help:describe 1) 오류발생시

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project javaprj: Compilation failure: Compilation failure:
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.

 

pom.xml 에 아래 추가 ( POM = project object model )

<project...>
   ...
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
 
</project>
 
Maven Phase
 
2) class 생성 ( 위 그림에서 Maven Phase.Compile 단계까지 실행 ) mvn compile
3) Test ( 위 그림에서 Maven Phase.Test 단계까지 실행 ) mvn test
4) Package jar 생성 ( 위 그림에서 Maven Phase.Package 단계까지 실행 ) mvn package
실행시 ) java -cp <class/jar directory+file> package명
   
 mvn help:describe mvn help:describe -Dcmd=compile
mvn help:describe -Dcmd=test
mvn help:describe -Dcmd=install
mvn help:describe -Dcmd=help:describe
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-help-plugin
mvn help:describe -DgroupId=org.apache.maven.plugins -DartifactId=maven-help-plugin
mvn help:help -Ddetail=true' for more information.

참고 ) mvn help:describe -Dcmd=compile 명령으로 plugin 을 확인할수 있으며,
http://maven.apache.org/plugins/index.html 에서 Plugin 을 다운로드해서 Maven Phase 에 설정할 수 있다.
 
 
 
Eclipse 작업 상황 대처
Eclipse 설정 Eclipse 상단메뉴.Window.ShowView.Other.Maven.MaverRepositories.확인
    Eclipse 우측아이콘메뉴.MaverRepositories버튼.GlobalRepositories.central.RebuildIndex

pom.xml 수정후 Eclipse-Maven.projectfile.RightClick.Maven.Update Project
Default Java Version ) J2SE 1.5
J2SE1.5 를 1.8 로 올리기 pom.xml 내 compiler 옵션을 아래처럼 설정 추가해야 함.

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-pl니gin</artifactId>
      〈version>3.8.l</version>
      <configuration>
        <source>1.8</source>
        <target>l.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>


pom.xml 수정했으니 Update Project 할 것.

참고로, 위 문장은 아래 신버전 문장과 같다 .
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
jar 를 Web war 로 바꾸기 1) pom.xml 에서 <packaging/> 을 war 로 변경후, Update Project .
2) src/webapp 아래에 WEB-INF 만들고, WEB-INF 아래에 tomcat/webapps/ROOT/WEB-INF/web.xml 을 복사해온다.
Eclipse Web 실행 Ctrl + F11

* 실행시 이클립스 브라우저 실행되는데, 상단메뉴.Window.WebBrowser.DefaultSystemWebBrowser 선택하면 크롬이 뜬다.


Eclipse Tomcat Lib 설정 https://www.youtube.com/watch?v=vlIGi0hG_n4&list=PLq8wAnVUcTFWRRi_JWLArMND_PnZM6Yja&index=9 에서 3분 확인

1) mvnrepository.com : tomcat jsp api 검색해서 버전별 lib 확인가능. dependency 문장 복사.
2) POM.xml 에 Dependency 추가
3) 사용자PC에 "사용자 > [사용자명] > .m2 > repository" 에 다운로드 됨.
Eclipse 에서 Library 오류 발생시 실행중인 이클립스를 닫고, 사용자PC에 "사용자 > [사용자명] > .m2 > repository로 들어간 다음, 모두 삭제한다음 , 이클립스에서 재실행하면 다시 다운로드 된다.
Maven 내 jar Library 만들어서 사용하기 Eclipse.왼쪽프로젝트메뉴.오른쪽클릭.RunAs.MavenInstall
사용자PC에 "사용자 > [사용자명] > .m2 > repository" 에 Jar 가 만들어진다 .
이 Jar 는 바로 위 설명인 "Eclipse Tomcat Lib 설정" 에서 불러 쓸 수 있다.

이를 쓰려면, AddDependency Local Repository Rebuild Index 를 한 뒤,
pom.xml 에서 dependency 추가하거나, 프로젝트 오른쪽마우스클릭해서 Maven.AddDependency 하면된다. 
공유 Library 라면, Maven 계정으로 "maven deploy" 하면 central 에 올라가니, 개발자들끼리 공유해서 쓸 수 있다.
     
 

 

반응형