我目前正在尝试为Solaris构建一个第三方项目(qt 5.0.1),并且目前遇到以下错误:
io/qtemporarydir.cpp: In member function 'void QTemporaryDirPrivate::create(const QString&)':
io/qtemporarydir.cpp:150:30: error: 'mkdtemp' was not declared in this scope
gmake[3]: *** [.obj/release-shared/qtemporarydir.o] Error 1
根据我所发现的,mkdtemp应该在/usr/include中的stdlib.h中找到。然而,在我的solaris系统上查看stdlib.h,它没有定义mkdtemp方法。
有谁知道解决这个问题的方法吗?
我发现Qt源代码中有一个额外的函数,它代替了没有定义mkdtemp的系统。然而,它被包装在一个#ifdef语句中,没有考虑到Solaris的构建。取消注释#ifdef包装器修复编译