Rust Part7

■ このスレッドは過去ログ倉庫に格納されています
2019/07/14(日) 23:31:47.54ID:PySyhRf9
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

前スレ
Rust Part6
http://mevius.5ch.net/test/read.cgi/tech/1532714678/
2019/07/15(月) 14:42:37.66ID:Xch0qlQL
>>1おtsuR
3デフォルトの名無しさん
垢版 |
2019/07/15(月) 17:56:25.13ID:9ryZm2UI
ビルドエラーが出るのですが、なにか解決策はありますか?

Compiling backtrace-sys v0.1.30
error: failed to run custom build command for `backtrace-sys v0.1.30`
process didn't exit successfully: `C:\Programming\Rust_project\socket_programming\target\debug\build\backtrace-sys-159a954e4a82ac78\build-script-build` (exit code: 1)
--- stdout
cargo:rustc-cfg=rbt
TARGET = Some("x86_64-pc-windows-gnu")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-pc-windows-gnu")
CC_x86_64-pc-windows-gnu = None
CC_x86_64_pc_windows_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-pc-windows-gnu = None
CFLAGS_x86_64_pc_windows_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running: "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out"
cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
exit code: 1

--- stderr


error occurred: Command "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out" with args "gcc.exe" did not execute successfully (status code exit code: 1).
2019/07/15(月) 18:45:30.04ID:y88H95dP
>cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

「rust unimplemented: 64-bit mode」で検索すれば?
2019/07/15(月) 23:08:24.27ID:VplRLaA9
32bit mingwで64bitのコンパイルしようとした時のエラーの話だからrust付けると出てこないだろうな。
*-pc-windows-gnuはツールチェーン含んでるから余計な環境でビルドせずに含んでるもの使えばいいんだよ。
2019/07/16(火) 15:23:57.01ID:jMFvbE2f
Rustで
port0.od = 0; // 0b00000000
port0.od.b0 = 1; // 0b00000001
port0.od.b5 = 1; // 0b00100001
port0.od.b0 = 0; // 0b00100000
みたいな実装って出来るんだっけ?
port0.od = 0; // 0b00000000
port0.od.b1(1); // 0b00000010
とか
port0.od = 0; // 0b00000000
port0.od.bitset(6); // 0b01000000
みたいに関数を介せば出来ると思うけど
2019/07/16(火) 19:08:19.57ID:JinG5ry6
bitflags?
8デフォルトの名無しさん
垢版 |
2019/07/16(火) 19:17:48.80ID:HPUIeONI
できない
2019/07/16(火) 20:14:44.06ID:56kV8Vkg
>6 標準では用意されてないけど、名前の通りbitfieldってcrateがあるから試してみて
https://github.com/dzamlo/rust-bitfield
106
垢版 |
2019/07/16(火) 22:09:31.51ID:mK/lXdx0
サンキュ。やっぱ無理か
こういう記法が出来る処理系って少ないですよね。言語レベルで対応しているか=の上書きと括弧無し関数呼び出しが出来るとかじゃないと難しい

どうやって実装しよう
1.読み出し:b0()、書き込み:b0set([0|1])
2.読み出し:bit(n)、書き込み:bitset(n)、bitclear(n)
どちらもスマートじゃないな。Rustだと引数の初期値を取れないから一つの関数で読み書き兼用というのも出来ないし

>>7
機能上はマスクで足りるのですが名前でビットを指定できた方が読みやすいので

>>9
読み出し:bit、書き込み:set_bitと実装されているみたいですね。こんな書き方しかないのかな
2019/07/16(火) 22:19:22.64ID:BU48xkSV
bitmapで良くない?外部クレートなかったっけ?
2019/07/16(火) 22:25:39.33ID:BU48xkSV
間違えたbitsetだ。
2019/07/16(火) 22:30:18.97ID:p9rPVFUU
マクロ使えば見た目は似せられるかも?
bit! {
od = 0;
od.b0 = 1;
}
みたいにしてASTいじって関数呼び出し形式に変換する感じの。
14デフォルトの名無しさん
垢版 |
2019/07/17(水) 00:27:23.47ID:OvMw+j5/
初心者です。苦戦してます。お知恵を貸してください。
仮想端末を含んだ GTK+3 アプリを C++ で作りたいです。
gtkmm だと vte が使えない(?)ので、gtk-3.0 を使って試してます。
サンプルを下のリンクに置きました。

make すると main 最後の return app->run(window); の所で、
[no member named 'run' in '_GtkApplication']とエラーになってしまいます。
この部分は gtkmm の例から持って来たもなので、変える必要があるのですが、
gtk+3 ではどう書くのが正解でしょうか?よろしくお願いします。
あるいは、gtkmm でも vte を使う簡単な方法がもしあれば、教えてください。

Makefile
http://codepad.org/wldK76KY

main_test_3.cc
http://codepad.org/NopgbNXP

sample_3.h
http://codepad.org/BiQt354F

sample_3.cc
http://codepad.org/I1B7AyJL
1514
垢版 |
2019/07/17(水) 00:29:17.38ID:OvMw+j5/
すみません。誤爆しました。14は無視してください。
16デフォルトの名無しさん
垢版 |
2019/07/17(水) 04:37:31.38ID:0r3gt+vm
>>10
配列でいいじゃん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況