0

cygwin で非常に古いバージョンの slapd (LDAP サーバー) をコンパイルしようとしています。これは以前は Linux ボックスで実行されていましたが、私の手に負えない理由により、Windows サーバーで動作するようにする必要があります。ソースコードのコンパイルに cygwin を使用することが提案されています。

残念ながら、「構成」中にビルドが失敗し、次のエラー メッセージが表示されます。

Cプリプロセッサの実行方法をチェックしています... cc -E
gcc をチェックしています... (キャッシュされた) cc
Cコンパイラ( cc )が動作するかどうかを確認しています...いいえ
構成: エラー: インストールまたは構成の問題: C コンパイラは作成できません
e 実行可能ファイル。

config.log の最後の数行は次のとおりです。

configure: 失敗したプログラムは:
#2822行目「設定」
#include "confdefs.h"

int main() {
__EMX__ を返します。
; 0 を返します。}
configure:2845: C プリプロセッサの実行方法を確認しています
構成:2866: cc -E conftest.c >/dev/null 2>conftest.out
configure:2950: gcc をチェックしています
configure:3063: C コンパイラ (cc) が動作しているかどうかを確認しています
構成:3079: cc -o conftest conftest.c 1>&5
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: 見つかりません
 -luser32
collect2: ld が 1 つの終了ステータスを返しました
configure: 失敗したプログラムは:

#3074行目「設定」
#include "confdefs.h"

メイン(){リターン(0);}

更新: これは win32 コンピューターです。cygwin には user32 という共有オブジェクトが含まれていませんが、Windows XP には user32.dll というオブジェクトが含まれています。

UPDATE2: w32api は既にインストールされています (3.13-1) - visual-stuido 2003 .Net の一部として user32.lib があることに注意してください - Cygwin の GCC でこれを使用する方法はありますか?

4

3 に答える 3

1

-luser32が失敗する場合は、w32apiCygwinパッケージをインストールしてみてください。

于 2009-01-19T16:44:16.300 に答える
1

どうやら根本原因は

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: -luser32 が見つかりません

これは、cygwin のインストールに問題があるか、configure スクリプトが古すぎてインストールを認識して処理できないかのいずれかです。

于 2009-01-19T14:31:37.613 に答える
0

試行錯誤の結果、この問題に対する正しい答えが見つかりました。このエラーの理由は、Cygwin 環境が正しく設定されていないことです。

ドメインのログイン ユーザー、および /etc/passwd および /etc/group ファイルがデフォルトで正しく設定されていませんでした。解決策は、ローカル ユーザー アカウントを作成してから、passwd ファイルと groups ファイルを再構築することでした。

その後、GCC は問題なくビルドできました。

クレイジーに聞こえますね。

于 2009-01-22T16:16:18.353 に答える