Crystalの公式サイトにのっているHTTPサーバーを起動するサンプルを実行してみたところsslのライブラリが見つからないというエラーがでていろいろ調べてみました。
サンプルコード
require "http/server"
server = HTTP::Server.new do |context|
context.response.content_type = "text/plain"
context.response.print "Hello world, got #{context.request.path}!"
end
puts "Listening on http://127.0.0.1:8080"
server.listen(8080)
エラー
ld: library not found for -lcrypto (this usually means you need to install the development package for libcrypto)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: execution of command failed with code: 1: `cc "${@}" -o '/Users/xxx/.cache/crystal/crystal-run-kv.tmp' -rdynamic -lz `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'` -lpcre -lgc -lpthread /Users/xxx/.anyenv/envs/crenv/versions/0.25.1/src/ext/libcrystal.a -levent -liconv -ldl -L/usr/lib -L/usr/local/lib`
opensslも入っているしエラーを調べて出てきた記事を試してみてもうまくいかなかったのですが、エラーをよく見たところ pkg-config
が入っていないことが分かったので↓のように入れたところ無事実行できました。
修正コマンド
brew install pkg-config