我正在尝试创建一个跨平台的程序。我刚刚创建了一个类,并创建了一个获取当前用户路径的函数。我想稍后使用那条路径。但不知怎的,我得到了这些错误:
“/ usr / include / x86_64-linux-gnu / sys / stat.h:-1:在成员函数'void FileManager :: p_getfilepath()':”
“/ usr / include / x86_64-linux-gnu / sys / stat.h:105:错误:字符串常量之前的预期unqualified-id”
“/ home / david / VocabularyTrainer / filemanager.cpp:31:错误:预期'}'在输入结束时”
btw第31行是此代码中的最后一行:
void FileManager::p_getfilepath()
{
#ifdef Q_OS_WIN32
#include <windows.h>
#endif
#ifdef Q_OS_LINUX
#include <sys/stat.h>
struct passwd *p;
uid_t uid;
if ((p = getpwuid(uid = geteuid())) == NULL)
{
QMessageBox* mb;
mb->setText("");
mb->exec();
delete mb;
}
else
{
filepath = p->pw_dir;
}
#endif
}
任何人都知道什么是错的?我正在使用linux。
答案 0 :(得分:2)
通过将标题包含在类函数中,您可以将标题中的所有内容都作为函数的一部分。
#ifdef Q_OS_WIN32
#include <windows.h>
#endif
#ifdef Q_OS_LINUX
#include <sys/stat.h>
#endif
void FileManager::p_getfilepath()
{
#ifdef Q_OS_LINUX
struct passwd *p;
uid_t uid;
if ((p = getpwuid(uid = geteuid())) == NULL)
{
QMessageBox* mb;
mb->setText("");
mb->exec();
delete mb;
}
else
{
filepath = p->pw_dir;
}
#endif
}