Cargo: `crate-type = ["cdylib"]`์ธ ๊ฒฝ์šฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์—์„œ ํฌ๋ ˆ์ดํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 02์›” 13์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-lang/cargo

๋ฌธ์ œ
์ €๋Š” cdylib ์˜ ํฌ๋ ˆ์ดํŠธ ์œ ํ˜•์ด ํ•„์š”ํ•œ Python๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. tests ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๋”ฐ๋ฅผ ๋•Œ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ํฌ๋ ˆ์ดํŠธ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

   Compiling cargo_issue_6659 v0.1.0 (/home/cfkaran2/Desktop/cargo_issue_6659)
     Running `rustc --edition=2018 --crate-name tester tests/tester.rs --color always --emit=dep-info,link -C debuginfo=2 --test -C metadata=0525a91fc572753f -C extra-filename=-0525a91fc572753f --out-dir /home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps -C incremental=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/incremental -L dependency=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps`
     Running `rustc --edition=2018 --crate-name cargo_issue_6659 src/lib.rs --color always --emit=dep-info,link -C debuginfo=2 --test -C metadata=b9fa70b838dfddae -C extra-filename=-b9fa70b838dfddae --out-dir /home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps -C incremental=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/incremental -L dependency=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps`
error[E0463]: can't find crate for `rustc_issue_report_cdylib`
 --> tests/tester.rs:1:1
  |
1 | extern crate rustc_issue_report_cdylib;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: Could not compile `cargo_issue_6659`.

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name tester tests/tester.rs --color always --emit=dep-info,link -C debuginfo=2 --test -C metadata=0525a91fc572753f -C extra-filename=-0525a91fc572753f --out-dir /home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps -C incremental=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/incremental -L dependency=/home/cfkaran2/Desktop/cargo_issue_6659/target/debug/deps` (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed

๋‹จ๊ณ„

  1. https://github.com/ckaran/cargo_issue_6659 ์—์„œ ์ €์žฅ์†Œ๋ฅผ
  2. README.md ์˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…)

์•Œ๋ ค์ง„ ๋ฐ” ์—†์Œ.

๋…ธํŠธ

$ cargo -V -vvv
cargo 1.32.0 (8610973aa 2019-01-02)
release: 1.32.0
commit-hash: 8610973aaf48615ba7dc9a38a9a2795ba6f36a31
commit-date: 2019-01-02

$ rustc -Vv
rustc 1.32.0 (9fda7c223 2019-01-16)
binary: rustc
commit-hash: 9fda7c2237db910e41d6a712e9a2139b352e558b
commit-date: 2019-01-16
host: x86_64-unknown-linux-gnu
release: 1.32.0
LLVM version: 8.0

$ uname -a
Linux EMANE 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic
A-crate-types A-documenting-cargo-itself

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

rlib (๋˜๋Š” lib )๋ฅผ crate-type ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” cdylib์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

BTW, ๊ท€ํ•˜์˜ ์˜ˆ์—๋Š” ์˜คํƒ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. tests/tester.rs ์—๋Š” extern crate cargo_issue_6659; ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

rlib (๋˜๋Š” lib )๋ฅผ crate-type ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” cdylib์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

BTW, ๊ท€ํ•˜์˜ ์˜ˆ์—๋Š” ์˜คํƒ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. tests/tester.rs ์—๋Š” extern crate cargo_issue_6659; ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์Šˆ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ repo๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์ด์— ์น˜ํ‚จ & ์—๊ทธ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋•Œ๋•Œ๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์žŠ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

rlib ๋˜๋Š” lib ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฌธ์ œ๋Š” pyo3 ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์œ ํ˜•์„ cdylib ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ ๋‚ด ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ž‘์—…์€ ๋‚˜์—๊ฒŒ ๋†€๋ผ์šด ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ cdylib ์œ ํ˜• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ ์ด ์‚ฌ์‹ค์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด cargo (๋˜๋Š” rustc ) ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. .

์˜ˆ, ํฌ๋ ˆ์ดํŠธ ์œ ํ˜•์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ™•์‹คํžˆ ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฌธ์„œ ๋ฌธ์ œ๋กœ ์ด๊ฒƒ์„ ์—ด์–ด ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰