OpenAL のインストール方法 (Mac)

home brew でインストールした場合。。

私の環境では、pkg-config がうまく動かなかったため、メモっておこうと思います。

 

$ brew install openal-soft    でインストール

$ pkg-config --cflags --libs openal   で確認する

 

インストール自体は行われていても、pkg-config で、エラー出るとき

環境変数の、PKG_CONFIG_PATH に 

/usr/local/opt/openal-soft/lib/pkgconfig

を設定する

 

すでにPKG_CONFIG_PATH に設定されている場合は、区切り文字として、: (コロン)を追加すること

具体的には、/hoge1:/usr/local/opt/openal-soft/lib/pkgconfig

などにする。

とあるライブラリを使おうとします。当然ライセンスを見て。。問題ないことを確認します。が、このライブラリというのは、依存パッケージが山のようにあって、それらも呼び出して、勝手にリンクしちゃうんですね。こういうときに、依存先のパッケージも、一個ずつ、ライセンスを確認するのは、骨が折れるし、時間の無駄です。自動化できるはずと思っていました。

 

【Rust】cargo-denyとは何なのか?使い方は? #Rust - Qiita

 

 

Rust でコンパイルエラー

このプログラムを、ビルドすると所有権がらみのエラーになります。
エラーメッセージにある通りに、一旦、ローカル変数を経由して、2行に分けるだけで、解決してしまいます。。汗

なぜ?

fn main() {
    let mut h = Hoge { hoge2 : 0 }; 
    h.hoge3();
}

struct Hoge {
    hoge2:usize,
}

impl Hoge {
    fn get_byte(&mut self)->u8 { 0
    }
    fn format_byte(&mut self , address:u8 ) ->String {
        let s = format!("{:02X}H",address);
        s
    }
    
    fn hoge3(&mut self) {
        println!( "{}",format!("OR    {}",self.format_byte(self.get_byte() )));  // A

        //let a = self.get_byte();                                          // B
        //println!( "{}",format!("OR    {}",self.format_byte( a )));        // B
    }
    
}

⣿
Standard Error

   Compiling playground v0.0.1 (/playground)
error[E0499]: cannot borrow `*self` as mutable more than once at a time
  --> src/main.rs:19:60
   |
19 |         println!( "{}",format!("OR    {}",self.format_byte(self.get_byte() )));  // A
   |                                           -----------------^^^^^^^^^^^^^^^--
   |                                           |    |           |
   |                                           |    |           second mutable borrow occurs here
   |                                           |    first borrow later used by call
   |                                           first mutable borrow occurs here
   |
help: try adding a local storing this argument...
  --> src/main.rs:19:60
   |
19 |         println!( "{}",format!("OR    {}",self.format_byte(self.get_byte() )));  // A
   |                                                            ^^^^^^^^^^^^^^^
help: ...and then using that local as the argument to this call
  --> src/main.rs:19:43
   |
19 |         println!( "{}",format!("OR    {}",self.format_byte(self.get_byte() )));  // A
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0499`.
error: could not compile `playground` due to previous error

Standard Output

github がSSH鍵を交換したので、push できなくなった

GitHub.comがSSH鍵を交換、接続できなくなった場合には確認を | TECH+(テックプラス)

上記のことが起こり、git push などが実行できなくなってしまいました。

SSH鍵を作り直す必要性がありそうです。

 

基本的には、下記の通りにやるのですが、ed25519 というやつの作り方を説明してくれています。(以前はRSAだったようで、ググったときに、古いページによっては、RSAの説明がなされています。)どっちでも動くと思うのですが、githubが推奨している方法でやる方がいいと思います。

 

新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs

GitHub アカウントへの新しい SSH キーの追加 - GitHub Docs

 

 

調べてみたら、下記のページを見つけました。今のところ、最強らしいです。

SSH認証に最強の「Ed25519鍵」を使おう

https://linuxfan.info/ssh-ed25519

 

 

ちなみに、github.com に、公開キーを登録するときに、

 を、Authentication Key のままにする必要があるようです。なぜか、Sining Key にしていて、うまくいきませんでした。

 

 

パスフレーズを毎回聞かれるのが辛い場合は、下記のようにするといいらしい。。

GitでSSHのパスフレーズ入力を省略する方法 - Qiita