16215
この[
**リンク先**](https://github.com/0xfffffff7/HelloHttp2ssl/blob/master/hellohttp2.cpp)のコードをコンパイルしようとすると,下記のようなエラーが出てコンパイル出来ません。Opensslのバージョンが1.0.2以上じゃないとalpnが使えないというのは、調べた結果わかったので、[
**この方法**](https://sandilands.info/sgordon/upgrade-latest-version-openssl-on-
ubuntu)で1.0.2dにあげたのですがダメでした。  
どなたか解決方法知っている方がいましたら教えて下さい。  
ubuntuのバージョンは、14.04.3です。

```

    root@ubuntu:~$ g++ -g -Wall -I/usr/local/include -lssl -lcrypto -lstdc++ -o hellohttp2.o hellohttp2.cpp
    hellohttp2.cpp: In function ‘int main(int, char**)’:
    hellohttp2.cpp:133:49: error: ‘SSL_set_alpn_protos’ was not declared in this scope
    SSL_set_alpn_protos(_ssl, protos, protos_len);
                                                ^
    hellohttp2.cpp:146:54: error: ‘SSL_get0_alpn_selected’ was not declared in this scope
    SSL_get0_alpn_selected(_ssl, &ret_alpn, &alpn_len);
                                                     ^
    
```
CC BY-SA 3.0
2015-09-04T00:50:13.213
15217
2015-09-04T02:31:43.770
2015-09-04T02:31:43.770
11194
question
ubuntu openssl
Ubuntu上でOpenSSLのalpnの関数を使う方法
Ubuntu 15.04 で openssl 1.0.2d を /usr/local 以下にインストールした後で、以下を実行しました。

```

    $ g++ -g -O2 -Wall -I/usr/local/include -o hellohttp2 hellohttp2.cpp -lstdc++ -L/usr/local/lib -lssl -lcrypto -ldl
    
```

これで `hellohttp2` が作成されます。

おそらく、`-o hellohttp2 hellohttp2.cpp` をライブラリのリンク指定(`-ssl -lcrypto
-dl`)よりも前に置く必要があります。
CC BY-SA 3.0
2015-09-04T01:44:09.793
16215
2015-09-04T01:44:09.793
15217
answer