4

C++ で .CGI を作成しました。このバイナリはboost、特定のフォルダ内の一部の共有ライブラリおよびその他のリソースに依存しています/usr/local/boost/。CGI が実行されず、ログにエラーが表示される

    error while loading shared libraries: libdxxx: cannot 
    open shared object file: No such file or dire

現在、次のように設定する必要があるという多くのログを読みましたhttpd.confが、それでも機能しません。

   SetEnv LD_LIBRARY_PATH /usr/local/boost:

私の構成では、この行を構成ファイルの最後に「そのまま」設定し、どのVirtualHOst or Directoryセクションにも含めません。cgi-bin のディレクトリに挿入しようとしましたが、それでも同じです

 <Directory "/var/www/cgi-bin">
     AllowOverride None
     Options None
     Order allow,deny
     Allow from all
     SetEnv LD_LIBRARY_PATH /usr/local/boost
 </Directory>

また、ldconfig 用の .conf ファイルを追加しようとしましたが (以下の説明を参照)、まだ機能しません!

  #added a file called myconfig.conf conrtaining a line
  /usr/local/boost 

  /etc/ld.conf.d/
  ldconfig (as root)

httpdまた、それを実行する ROOT ユーザーの環境変数を継承するread もあります。root として次のように呼び出して Apache を起動し、LD_LIBRARY_PATH は正しく設定されていますが、それでも何か問題があります。

 /etc/init.d/httpd start

Red Hat 6.2 を使用しています。

4

1 に答える 1

5

Linux Debian ボックスでは、これを使用します。

構成ファイルを作成し、文字列 /usr/local/boost を追加します。

/etc/ld.so.conf.d/boost.conf

次に実行します。

# ldconfig

そして最後に:

# /etc/init.d/apache2 restart

Red Hat でそれを行う方法がわかりません。

于 2013-10-21T08:29:42.947 に答える