Rust-rocksdb ๊ฐ x86_64-unknown-linux-musl
์ ๋น๋๋ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค.
Rust musl docker๋ฅผ ์ฌ์ฉํ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Compiling librocksdb-sys v5.11.3 (file:///home/rust/src/rust-rocksdb/librocksdb-sys)
error: failed to run custom build command for `librocksdb-sys v5.11.3 (file:///home/rust/src/rust-rocksdb/librocksdb-sys)`
process didn't exit successfully: `/home/rust/src/rust-rocksdb/target/debug/build/librocksdb-sys-030649180e4da4ff/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs
cargo:rerun-if-changed=rocksdb/
cargo:rerun-if-changed=snappy/
rocksdb/include/rocksdb/c.h:48:9: warning: #pragma once in main file [-Wpragma-once-outside-header], err: false
rocksdb/include/rocksdb/c.h:68:10: fatal error: 'stdarg.h' file not found, err: true
--- stderr
rocksdb/include/rocksdb/c.h:48:9: warning: #pragma once in main file [-Wpragma-once-outside-header]
rocksdb/include/rocksdb/c.h:68:10: fatal error: 'stdarg.h' file not found
thread 'main' panicked at 'unable to generate rocksdb bindings: ()', /checkout/src/libcore/result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Fedora28์์ ๋์ผํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋๊ณ ๋๋ฝ๋ stdarg.h
(๋ฐ ๊ธฐํ...)๊ฐ ํฌํจ๋ clang-devel
ํจํค์ง๋ฅผ ์ค์นํด์ผ ํ์ต๋๋ค.
ํ์ฌ ๋ง์คํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ด๋ ์ปดํ์ผํ ์ ์์ง๋ง musl-g++
์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ g++
์ PATH์ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ์ ๋ฐ๋ผ ์ด์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
ํ์์ ์ํ ๋จ๊ณ:
sudo apt-get install -y clang
sudo ln -s /usr/bin/g++ /usr/bin/musl-g++
์ musl-g++
์ฐพ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@rubencaro ํ์ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด๋ฏธ ์ฌ๋ฌ stdarg.h
๋ฒ์ ์ด ์์์ง๋ง ์ด ์ ํํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
@cetra3 cc-rs๊ฐ ์คํ ํ์ผ ์ด๋ฆ์ ์์ฑํ๋ ๋ฐฉ์ ๋๋ฌธ์ ์ฐพ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ธ๊ธ๋ ๊ฒ์ฒ๋ผ "์๋ฑํ" https://github.com/alexcrichton/cc-rs/issues/105์ ๋๋ค.
cc-rs ์ฝ๋๋ฅผ ์ดํด๋ณด์์ง๋ง musl-g++
ํด๊ฒฐ๋๋ ์ง์ ์ ์ค์ ๋ก ์ฐพ์ ์ ์์ต๋๋ค. ๋๋ณด๋ค ๋๋ํ ์ฌ๋์ด ๊ทธ๊ฒ์ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๊ทธ๊ฒ์ ์ฌ๊ธฐ์ด ๋ถ๋ถ์ https://github.com/alexcrichton/cc-rs/blob/ad2ce008ec089a326bbebc7973225691a2816845/src/lib.rs#L1681 -L1692
์ฐ๋ถํฌ 19:04 ubuntu:rolling
์ด๋ฏธ์ง์์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ค์นํ์ต๋๋ค.
build-essential curl llvm-dev libclang-dev linux-headers-generic libsnappy-dev liblz4-dev libzstd-dev libgflags-dev zlib1g-dev libbz2-dev
ํ์ง๋ง ๋์ผํ stdarg.h
๋๋ฝ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@cetra3 ๊ทธ๋์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ผ์ จ๋์?
๋ํ ์์ค์์ rockdb๋ฅผ ์ปดํ์ผํ๋ฉด ์ ์๋ํ๊ธฐ ๋๋ฌธ์ ์ด ํจํค์ง์์๋
@alex88 ์ผ๋ง ์ ์ ์ปดํ์ผ์ ํ ์ ์์์ต๋๋ค. ์ฌ๊ธฐ ๋ด ํ์ญ์์ค . ์ด๊ฒ์ ๋ ์ด์ ์ ํจํ์ง ์์ ์ ์์ต๋๋ค.
@cetra3 clang
๋ฅผ ์ค์นํ์ฌ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ํค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ clang
์ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ lib ํจํค์ง๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@cetra3
clang
๋ฅผ ์ค์นํ์ฌ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ํค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์clang
์ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ lib ํจํค์ง๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!