2

happstack-server-tlsArch Linux (3.12.9) で cabal 経由でパッケージをインストールしようとしましたが、次のエラーが発生しました:

Resolving dependencies...
Configuring happstack-server-tls-7.1.0...
Failed to install happstack-server-tls-7.1.0
Last 10 lines of the build log ( /home/boris/.cabal/logs/happstack-server-tls-7.1.0.log ):
Configuring happstack-server-tls-7.1.0...
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
setup-Cabal-1.16.0-x86_64-linux-ghc-7.6.3: Missing dependency on a foreign
library:
* Missing C library: cryptopp
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
happstack-server-tls-7.1.0 failed during the configure step. The exception
was:
ExitFailure 1

このエラー メッセージを初めて見た後、crypto++pacman 経由でインストールしました。しかし、それは私を助けませんでした。

私もこれを試しました:

$ whereis libcryptopp.a                                                                                           
libcryptopp: /usr/lib/libcryptopp.so
$ cabal install happstack-server-tls --extra-include-dirs=/usr/lib/ --extra-lib-dirs=/usr/lib/

しかし、まだ運がありません。

crypto++ lib がこの test.cpp ファイルで動作するかどうかを確認しました:

#include <iostream>
using std::cout;
using std::endl;

#include "cryptopp/integer.h"
using CryptoPP::Integer;

int main( int, char** ) {

    Integer i;

    cout << "i: " << i << endl;

    return 0;
}

そして、g++ -g3 -ggdb -O0 -Wall -Wextra -Wno-unused -o test test.cpp -lcryptopp -pthreadtest.cppがうまくコンパイルされました。

それから私はしようとしました

$ cd /usr/lib
$ g++ -fpic -nostartfiles -nostdlib -shared libcryptopp.so -o libcryptopp.dylib

しかし、再び、まだ運がありません。

誰かがこの問題に直面しましたか? 解決策はありますか?

4

1 に答える 1

2

を実行cabal unpack happstack-server-tlsして、ソース コードを取得し、ローカル ディレクトリに展開します。次に、を編集してhappstack-server-tls.cabal、次の行を削除してみてください。

if !os(darwin)
    Extra-Libraries: cryptopp
于 2014-03-13T14:25:40.120 に答える