【发布时间】:2013-04-24 17:00:45
【问题描述】:
我正在尝试创建一个跨平台程序。我刚刚创建了一个类并创建了一个获取当前用户路径的函数。我想稍后使用那条路径。但不知何故,我得到了这些错误:
"/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: 错误:输入结束时应为'}'”
顺便说一句,第 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 mint 上。
【问题讨论】:
-
您确定要在 inside 这样的方法中包含标头吗?我几乎可以肯定结果不会很好。
-
我只能在 linux 或 unix 系统上包含该标头。
-
这很好,但是为什么要在方法内部这样做呢?
-
是的,刚刚意识到
标签: c++ c linux standard-library