일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- vuejs
- 안드로이드
- Qt OpenGL
- 바이크
- 고속도로
- QTcpServer
- c언어
- 디자이어HD
- 잡담
- FFI
- QT
- 양평역
- 스타크래프트2
- 정성하
- HTML
- 알람프로그램
- 오토바이
- Qt 소켓프로그래밍
- android SAF
- 마영전
- 이륜차
- 자료구조
- qt 설치
- 스타2
- 엑티브엑스
- Qt4
- Java
- 재귀함수
- 윈도우7
- 자바
- Today
- Total
목록프로그래밍/Rust (4)
프로그래밍과 잡담
집에 남아도는 라즈베리파이2가 있길래 GPIO 포트를 제어하는 걸 한번 해보고 싶어서 인터넷에서 브래드보드, 저항, led, 점퍼하고 버튼을 샀다. 가격도 상당히 저렴함. 근데 이놈들 저항을 랜덤으로 보내준다면서 다 1k 옴으로 줌 ㅅㅂ. 난 전자과가 아니라 회로에 대한 이론이 개뿔도 없음. 고등학교나 중학교때 배운 거 밖에 모름 ㅋ 그냥 인테넷 뒤져서 해봤다. 그냥 대충 돌아가는거에 만족해야겠음 ㅋㅋ 사실 이런 하드웨어 제어는 아직까지 C언어로 많이 짠다. 어차피 기능이 무진장 들어가는게 아니면 C 로짜는게 간편하거든. 근데 난 옛날에 C 언어를 해봐서 기억도 안나고 Rust 는 그래도 가끔씩 사용해서 할 줄 아니 Rust로 해보았다 ㅋ 위의 사진 보다 싶이 별거 없다. 그냥 버튼 누르면 led가 1초..
ust는 다른 언어를 위한 인터페이스가 존재한다. 구조는 C 인터페이스를 사용한다. 그에 대한 사용법은 아래와 같다. Rust에서 선언 이렇게 하면 되고 // Rust에서 다른 언어로 넘길 때 사용하는 구조체 아래의 어노테이션을 써야한다. #[repr(C)] pub struct Data{ pub int_val : i32, pub double_val: f64, // 문자열 쓸려면 이렇게 해야함. pub str_val: *const c_char } // 이건 뭐 해도 되고 안해도 됨 impl Clone for Data{ fn clone(&self) -> Data { Data { int_val: self.int_val, double_val: self.double_val, str_val: self.str_val..
1. 사전 준비 작업 안드로이드 SDK 설치 안드로이드 NDK 설치 ( sdk 열어서 SDK_Tools 탭에 가면 ndk 설치하면 된다. ) Rust 설치 2. 빌드 셋팅 config 파일을 만들어서 에디터로 연다. 그리고 아래와 같이 셋팅 NDK 경로는 toolchains 라는 폴더가 있는 위치를 넣으면됨 예를들어 나같은 경우는 D:\Dev\android-sdk\ndk\21.3.6528147 이렇게 되어 있음 뒤에 exe, cmd 는 각자의 os에 맞춰서 바꾸면 된다. [target.aarch64-linux-android] ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar.exe" linker = "[ND..
Rust 언어는 프로그래머가 일일이 메모리 관리에 골머리를 쌓으면서 처리 안해도 돼는 좋은 언어이다. 게다가 성능도 C++와 비슷하거나 빠르다. 하지만 이 좋은 기능을 Rust 에서만 사용해서는 안됀다. C언어나 C++ 처럼 다른 언어에서도 사용 할 수 있어야, 그 언어의 진가가 발휘 할 수 있을 것이다. 왜냐 일반적으로 가비지 컬렉션을 사용하는 자바나 C# 또는 인터프리터 언어들(python, ruby 등등등)은 바이너리 언어 비해서 성능이 떨어지는 편이다. 요즘은 많이 좋아졌다고는 하지만 1분 1초가 중요하게 생각하는 분야에서는 여전히 C/C++이 대세이다. 당연하게도 rust에서는 이 기능을 제공하고 있다. 콘솔을 열고 아래와 비슷한 rust 프로젝트를 생성한다. $cargo new myfunc 그..