2016-05-09 6 views
1

タイトルにあるように、私はQtコードをライブラリでコンパイルする必要があり、変数を定義する必要があります。具体的には、私はLDAP認証のサポートに取り組んでいます。私はDEFINES + = LDAP_DEPRECATEDよう.PROファイルにこの変数を定義しようとすると、プレーンなCでQtは-Dと似た変数を定義します

は++私は、コマンド

g++ -I/home/user/development/openldap/include -L/home/user/development/openldap/lib/ -DLDAP_DEPRECATED main.cpp -o ldap -lldap 

をコンパイルし、次のことで、それを達成残念ながら、それは、LDAPライブラリへの参照を見つけることができません。

どこに定義すればよいですか?

+0

defineと '-D'は参照を解決するために使用されません。プリプロセッサのマクロ定義です。 – UmNyobe

+0

はい、QTでプリプロセッサ変数をどのように定義できますか?私は、それが.proファイルにDEFINES + = LDAP_DEPRECATEDを追加することであると思います。本当ですか? この変数を定義する前に、廃止予定のldap_simple_bind_sを見つけることができません。この変数を追加すると、ldap_関数は解決されません。 – user2336793

+0

プロファイル(上記のコマンドに対応)を表示できますか? – UmNyobe

答えて

2

変更後にqmakeを実行しましたか? .proファイルに変更を保存してビルドメニューから "Run qmake"をクリックした後に、DEFINES += LDAP_DEPRECATED-DLDAP_DEPRECATEDで呼び出されてコンパイラを呼び出すと確信しています。 QMakeプロジェクトファイルでプリプロセッサ変数を定義する正しい方法を使用しています。

しかし、あなたが同様にこれらの必要としているようで、他のコマンドラインオプションのために:ところで

# LDAP Support 
DEFINES += LDAP_DEPRECATED 
INCLUDEPATH += /home/user/development/openldap/include 
LIBS += -L/home/user/development/openldap/lib/ -lldap 

を、LIBSための構文は、同様のWindows上で使用することができ、-L引数うライブラリディレクトリに変換し、-lをライブラリファイル名に変換します。

+0

こんにちは、ありがとうございます。静的な方法でコンパイルしたかったので、このLIBDIR = -L $$ SMON_ROOT/usr/lib/libldap.aを使っていました。私が共有を使用したとき、あなたが甘やかされたので、少なくともそれはコンパイルされます。どのように私は静的な方法でそれをコンパイルすることができますか? – user2336793

+1

LIBS + = -static -L/home/user/development/openldap/lib/-lldap – UmNyobe

関連する問題