Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt定义类似于-D的变量_C++_Qt_Ldap - Fatal编程技术网

C++ Qt定义类似于-D的变量

C++ Qt定义类似于-D的变量,c++,qt,ldap,C++,Qt,Ldap,正如标题中所述,我需要用一些库编译我的Qt代码,并需要定义一些变量。更具体地说,我正在研究对ldap身份验证的支持 在普通C++中,通过编译命令< /p>实现了 g++ -I/home/user/development/openldap/include -L/home/user/development/openldap/lib/ -DLDAP_DEPRECATED main.cpp -o ldap -lldap 不幸的是,当我尝试在.pro文件中定义这个变量(如DEFINES+=LDAP_DE

正如标题中所述,我需要用一些库编译我的Qt代码,并需要定义一些变量。更具体地说,我正在研究对ldap身份验证的支持

在普通C++中,通过编译命令< /p>实现了
g++ -I/home/user/development/openldap/include -L/home/user/development/openldap/lib/ -DLDAP_DEPRECATED main.cpp -o ldap -lldap
不幸的是,当我尝试在.pro文件中定义这个变量(如DEFINES+=LDAP_DEPRECATED)时,它找不到对LDAP库的任何引用


有人知道应该在哪里定义吗?

更改后是否运行了qmake?我相信
DEFINES+=LDAP\u DEPRECATED
将导致在保存对.pro文件的更改并单击“生成”菜单中的“运行qmake”后重新生成后,使用
-DLDAP\u 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
转换为库文件名。

定义和
-D
不用于解析引用。它们是预处理器的宏定义。是的,但如何在QT中定义预处理器变量?我认为这是通过在.pro文件中添加DEFINES+=LDAP\u来实现的。这是真的吗?在定义此变量之前,它找不到已弃用的ldap\u simple\u bind\s。添加此变量后,它无法解析任何ldap_u函数。能否显示pro文件(与上面的命令相对应)?您好,谢谢。我想以静态方式编译它,所以我使用了LIBDIR=-L$$SMON_ROOT/usr/lib/libldap.a。当我使用shared时,正如你所建议的,至少要编译它。如何以静态方式编译它?LIBS+=-static-L/home/user/development/openldap/lib/-lldap