⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openssl.qcm

📁 QCA的OPENSSL模块
💻 QCM
字号:
/*-----BEGIN QCMOD-----name: OpenSSLarg: with-openssl-inc=[path],Path to OpenSSL include filesarg: with-openssl-lib=[path],Path to OpenSSL library files-----END QCMOD-----*/class qc_openssl : public ConfObj{public:	qc_openssl(Conf *c) : ConfObj(c) {}	QString name() const { return "OpenSSL"; }	QString shortname() const { return "openssl"; }	bool exec()	{		QString inc, lib;		QString s;		bool kb = false;		QString kbdir = "/usr/kerberos/include";		// Redhat 9?		if(QFileInfo(kbdir).exists())			kb = true;		s = conf->getenv("QC_WITH_OPENSSL_INC");		if(!s.isEmpty()) {			if(!conf->checkHeader(s, "openssl/ssl.h"))				return false;			inc = s;		}		else {			if(!conf->findHeader("openssl/ssl.h", QStringList(), &s))				return false;			inc = s;		}		s = conf->getenv("QC_WITH_OPENSSL_LIB");		if(!s.isEmpty()) {			if(!conf->checkLibrary(s, "ssl"))				return false;			lib = s;		}		else {			if(!conf->findLibrary("ssl", &s))				return false;			lib = s;		}		// is it at least openssl 0.9.7?		QString str =			"#include<openssl/opensslv.h>\n"			"int main()\n"			"{\n"			"  unsigned long x = OPENSSL_VERSION_NUMBER;\n"			"  if(x >= 0x00907000) return 0; else return 1;\n"			"}\n";		QStringList incs;		QString libs;		if(!inc.isEmpty())			incs += inc;		if(kb)			incs += kbdir;		if(!lib.isEmpty())			libs += QString("-L") + lib + ' ';		libs += "-lssl -lcrypto";		int ret;		if(!conf->doCompileAndLink(str, incs, libs, QString(), &ret))			return false;		if(ret == 0)			conf->addDefine("OSSL_097");		if(!inc.isEmpty())			conf->addIncludePath(inc);		if(kb)			conf->addIncludePath(kbdir);		if(!lib.isEmpty())			conf->addLib(QString("-L") + s);		conf->addLib("-lssl -lcrypto");		return true;	}};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -