proxy2ch を Ubuntu (x64) で make すると失敗するときの対処法

proxy2ch とは

prokusi.wiki.fc2.com

proxy2ch のリポジトリの場所

notabug.org

make すると起きる現象

$ make
g++ main.o BBS2chProxyConnection.o BBS2chProxyAuth.o DataStorage.o hmac.o stringEncodingConverter.o BBS2chProxyRawSocket.o BBS2chProxySecureSocket.o BBS2chProxyHttpHeaders.o -o proxy2ch -lcurl -lpthread -liconv -lcrypto
/usr/bin/ld: -liconv が見つかりません
collect2: error: ld returned 1 exit status
make: *** [Makefile:27: proxy2ch] エラー 1

結論

Makefile を編集して LDFLAGS の定義(追加)部分において LDFLAGS += -lcrypto と定義されるようにする。

Makefile の中の以下の部分を変更します。

変更前

ifneq ($(UNAME), Darwin)
    LDFLAGS += -liconv
    ifeq ($(HAVE_GNUTLS), 0)
        CFLAGS += -DUSE_GNUTLS
        LDFLAGS += -lgnutls
    else
        LDFLAGS += -lcrypto
    endif
else
    LDFLAGS += -framework CoreFoundation
endif

変更後

次のように変更します。

ifneq ($(UNAME), Darwin)
    # LDFLAGS += -liconv
    ifeq ($(HAVE_GNUTLS), 0)
        CFLAGS += -DUSE_GNUTLS
        LDFLAGS += -lgnutls
    else
        LDFLAGS += -lcrypto
    endif
else
    LDFLAGS += -framework CoreFoundation
endif

再びコンパイルし、生成を確認する

再び make をするとコンパイルが通って proxy2ch が生成されているはずです。

$ make clean

$ make
g++ main.o BBS2chProxyConnection.o BBS2chProxyAuth.o DataStorage.o hmac.o stringEncodingConverter.o BBS2chProxyRawSocket.o BBS2chProxySecureSocket.o BBS2chProxyHttpHeaders.o -o proxy2ch -lcurl -lpthread -lcrypto

$ ./proxy2ch --version
proxy2ch version 20220406 with curl 7.68.0 (TLS/SSL backend: GnuTLS/3.7.3)
./proxy2ch: unrecognized option '--version'
usage: proxy2ch [OPTIONS]
(後略)
Powered by はてなブログ