C++ Qt定义类似于-D的变量
正如标题中所述,我需要用一些库编译我的Qt代码,并需要定义一些变量。更具体地说,我正在研究对ldap身份验证的支持 在普通C++中,通过编译命令< /p>实现了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
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