필수적인:
선택 과목:
이 예제에서는 Python 3 및 최근 버전의 Scons를 설치했다고 가정합니다. MakeFile을 사용하여 스콘없이 도서관을 구축 할 수도 있습니다. Scons는 우리의 주요 빌드 도구이므로 여기에서 Scons 접근 방식을 설명합니다.
https://gitlab.com/pi-lar/neuropil (개발 버전) 또는 https://github.com/pi-lar/neuropil (미러)에서 저장소를 복제하십시오.
CD를 폴더에 넣고 스콘으로 코드를 작성하십시오.
먼저 명령을 내립니다
git submodule init
그 뒤에
git submodule update
다음과 같이 디버그 모드에서 빌드하십시오.
scons -C build -f ../SConstruct --DEBUG
또는 릴리스 모드에서 :
scons -C build -f ../SConstruct --RELEASE
문서 구축 (Sphinx 설치 필수) :
scons -C build -f ../SConstruct doc=1
테스트 구축 (기준 설치 필수) :
scons -C build -f ../SConstruct tests
프로젝트 청소/삭제 :
scons -C build -f ../SConstruct -c
Makefile도 사용 가능하지만 일부 경로 인포는 하드 코딩되어 환경에 적응해야합니다. MakeFile은 주로 정적 코드 분석을 위해 LLVM 스캔 빌드 툴링을 실행하고 라이브러리를 퍼징하는 데 사용됩니다.
CMAKE 파일은 첫 번째 초기 초안이며 라이브러리를 구축 할 수는 있지만 예제 프로그램은 아닙니다.
지금까지 사용할 수있는 autoconf가 없습니다.
Neuropil은 라이브러리 및 청정 개발 환경의 재현 가능한 빌드를 제공하는 닉스 생태계에 사용할 수 있습니다.
이 프로젝트는 닉스 플레이크로 제공되지만 Nix < 3.x 용 포장지가 제공됩니다.
다음 패키지를 제공합니다.
이것은 아마도 당신이하고 싶은 일이 아니지만 (다음 섹션 참조) 개별 패키지 구축은 다음과 같이 작동합니다.
| 명령 | 설명 |
|---|---|
nix build ./ | 라이브러리 및 헤더 파일을 빌드하십시오 |
nix build ./#packages.x86_64-{darwin,linux}.neuropil_{python,luajit} | Python 모듈 또는 LUA 모듈을 각각 구축합니다 |
nix develop 또는 nix-shell -A devShell.x86_64-{darwin,linux} | LDPATH 에 libneuropil과 이용 가능한 lua/python 바인딩이있는 쉘을 엽니 다. 이것을 사용하여 C 소스를 수동으로 구축하려면 (예 : $CC examples/neuropil_sender.c -lneuropil ) |
nix shell ./#packages.x86_64-{darwin,linux}.libneuropil | Neuropil의 종속성을 사용하여 쉘을 엽니 다. scons --DEBUG 및 scons --RELEASE 할 수 있습니다. |
리포지토리를 복제하지 않고 쉘을 열고 라이브러리를 구축하려면 Nix Flakes 교체를 사용하여 ./ git+<url to repo> 또는 gitlab:pi-lar/neuropil 사용하여 최신 분기.
대부분의 경우 Nix를 사용하여 neuropil 프로젝트에 통합하려고합니다. 응용 프로그램의 Neuropil 부분을 만들려면 플레이크를 가져 와서 이와 같이 패키지 세트에 오버레이를 추가 할 수 있습니다.
{ nixpkgs } :
let
// add rev = . . . to point to a specific version
neuropil = import ( fetchGit { url = "https://gitlab.com/pi-lar/neuropil.git" ; } ) ;
pkgs = import nixpkgs { overlays = [ neuropil . overlay ] } ;
python = pkgs . python3 . withPackages ( ps : with ps ; [ neuropil_python < other python > ] )
in with pkgs ; mkDerivarion {
...
buildInputs = [ libneuropil neuropil_luajit python < other deps > ]
...
}프로젝트가 플레이크 기반 인 경우이 repo를 입력으로 추가하고 오버레이를 가져 오십시오.
현재 Python 3.8의 cffi 라이브러리는 STDDEF에서 중요한 헤더 파일을 구문 분석하지 못합니다. 따라서 우리는 이것이 해결 될 때까지 Python3.7에 대한 라이브러리를 제공합니다.
입력 디렉토리 :
출력 디렉토리 :
실행 파일을 모든 실행 파일로 실행할 수 있습니다. 각 프로그램의 매개 변수를 살펴보십시오.
예 1 : 포트 1111에서 컨트롤러를 실행하십시오
LD_LIBRARY_PATH=./build/neuropil/lib ./build/neuropil/bin/neuropil_controller -b 1111
예제 2 : 포트 2222에서 노드를 실행하고 다른 노드로 결합 메시지를 보냅니다.
./build/neuropil/bin/neuropil_node -b 2222 -j b3b680a867849efe5886a5db751392e9d3079779e3f3c240ed849c11f4ba7d4a:udp6:test.local:3141
예 3 : 포트 2222에서 노드를 실행하고 와일드 카드 조인 메시지를 다른 노드로 보냅니다.
./build/neuropil/bin/neuropil_node -b 2222 -j *:udp6:test.local:3141
테스트 스위트를 실행하려면 병렬 실행을 제한하려면 매개 변수 "-j1"을 알려주십시오. 일반적으로 우리는 다음 명령을 사용합니다.
./build/neuropil/bin/neuropil_test_suite --tap -j1
이 프로젝트는 오픈 소프트웨어 라이센스 버전 3.0의 조건에 따라 오픈 소스로 제공됩니다. 그러나 예를 들어 ERG_Tools의 일부 파일은 BSD2 또는 GPL-2.0-Orlater 및 X11에 따라 라이센스가 부여되므로 정확한 정보는 개별 파일을 확인하십시오.