Cargo で gcc のフラグを任意に渡す方法→cargo rustc からのみ可能(2016-05-08修正)
要は Windows の GUI サンプルコードをお試しで動かすと コンソールも一緒に立ち上がってたのが嫌だったので調べると見つかった。
で、このフラグを Cargo から渡す方法はないか調べた。
確認環境
2016-05-08修正
申し訳ない、最初に書いた記事は自分の誤読で案について話しているだけで Cargoの設定ファイルで gcc へ任意のオプションを渡す方法は現時点では存在しておりませんでした。
ただ、cargo rustc
からであれば渡せます。
cargo rustc --release -- -C link_args=-Wl,--subsystem,windows
これは簡単なツール作って Windows エクスプローラから exe 起動して コマンドプロンプトが出なくなったのを確認済。
修正前の記事で紹介した
issue#544の件
のはまさしくこの cargo rustc
での機能を実装したよと言う事のみでした。すみません。
↓で見つけた。 github.com
やり方は簡単で、対象のプロジェクトの Cargo.toml に以下の一文を追加する。
[rustc] flags="-C link_args=\"-Wl,--subsystem,windows\""
MSVC ABI だとこの現象が発生しないのかは未確認。
ちなみにissue#544はcargo rustc
タスクでコマンドラインからオプションとして渡す方法がメインの話なのだが、
こちらでやると
前の記事の方法で設定した
追加ライブラリサーチパスが有効にならない。あくまでcargo run
orcargo build
した時だけって事なのかな。