Qt5 build failing on latest sources
Posted: Sat Jul 08, 2017 12:04 pm
Hey guys,
I'm having trouble to build the latest sources. After issuing
It gives me the following bunch of errors.
Are there any new dependencies since merging the webaccess feature, that I'm missing?
Trying to build with Qt 5.2.1 on Xubuntu 14.04 64Bit.
Any help is much appreciated!
Regards,
siegmund
[EDIT: Already tried "make distclean" and a fresh clone of the repo]
I'm having trouble to build the latest sources. After issuing
Code: Select all
qmake && make -j4 && sudo make install
Code: Select all
In file included from webaccessauth.cpp:26:0:
webaccessauth.h: In constructor ‘WebAccessUser::WebAccessUser()’:
webaccessauth.h:59:13: error: ‘WebAccessUserLevel’ is not a class or namespace
, level(WebAccessUserLevel::GUEST)
^
webaccessauth.cpp: In member function ‘bool WebAccessAuth::loadPasswordsFile(const QString&)’:
webaccessauth.cpp:49:30: error: ‘QIODevice::OpenModeFlag’ is not a class or namespace
if(!file.open(QIODevice::OpenModeFlag::ReadOnly | QIODevice::Text))
^
webaccessauth.cpp:57:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto parts = line.split(':');
^
webaccessauth.cpp:57:14: error: ‘parts’ does not name a type
auto parts = line.split(':');
^
webaccessauth.cpp:59:12: error: ‘parts’ was not declared in this scope
if(parts.size() < 2)
^
webaccessauth.cpp:65:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto username = parts[0];
^
webaccessauth.cpp:65:14: error: ‘username’ does not name a type
auto username = parts[0];
^
webaccessauth.cpp:66:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto passwordHash = parts[1];
^
webaccessauth.cpp:66:14: error: ‘passwordHash’ does not name a type
auto passwordHash = parts[1];
^
webaccessauth.cpp:67:26: error: ‘parts’ was not declared in this scope
int userLevel = (parts.size() >= 3) ? (parts[2].toInt()) : (WebAccessUserLevel::NOT_PROVIDED);
^
webaccessauth.cpp:67:69: error: ‘WebAccessUserLevel’ is not a class or namespace
int userLevel = (parts.size() >= 3) ? (parts[2].toInt()) : (WebAccessUserLevel::NOT_PROVIDED);
^
webaccessauth.cpp:69:28: error: ‘username’ was not declared in this scope
WebAccessUser user(username, passwordHash, (WebAccessUserLevel)userLevel);
^
webaccessauth.cpp:69:38: error: ‘passwordHash’ was not declared in this scope
WebAccessUser user(username, passwordHash, (WebAccessUserLevel)userLevel);
^
webaccessauth.cpp: In member function ‘bool WebAccessAuth::savePasswordsFile() const’:
webaccessauth.cpp:85:31: error: ‘QIODevice::OpenModeFlag’ is not a class or namespace
if(! file.open(QIODevice::OpenModeFlag::WriteOnly | QIODevice::Text))
^
webaccessauth.cpp:90:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
for(auto& username : m_passwords.keys())
^
webaccessauth.cpp:90:15: error: ISO C++ forbids declaration of ‘username’ with no type [-fpermissive]
for(auto& username : m_passwords.keys())
^
webaccessauth.cpp:90:26: error: range-based ‘for’ loops are not allowed in C++98 mode
for(auto& username : m_passwords.keys())
^
webaccessauth.cpp:92:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto user = m_passwords.value(username);
^
webaccessauth.cpp:92:14: error: ‘user’ does not name a type
auto user = m_passwords.value(username);
^
webaccessauth.cpp:93:19: error: ‘user’ was not declared in this scope
stream << user.username << ':' << user.passwordHash << ':' << (int)user.level << endl;
^
webaccessauth.cpp:90:15: error: unused variable ‘username’ [-Werror=unused-variable]
for(auto& username : m_passwords.keys())
^
webaccessauth.cpp: In member function ‘WebAccessUser WebAccessAuth::authenticateRequest(const QHttpRequest*, QHttpResponse*) const’:
webaccessauth.cpp:103:29: error: expected primary-expression before ‘(’ token
return WebAccessUser("", "", WebAccessUserLevel::NOT_PROVIDED);
^
webaccessauth.cpp:103:38: error: ‘WebAccessUserLevel’ is not a class or namespace
return WebAccessUser("", "", WebAccessUserLevel::NOT_PROVIDED);
^
webaccessauth.cpp:115:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto authentication = QString(QByteArray::fromBase64(auth.right(auth.size() - 6).toUtf8()));
^
webaccessauth.cpp:115:10: error: ‘authentication’ does not name a type
auto authentication = QString(QByteArray::fromBase64(auth.right(auth.size() - 6).toUtf8()));
^
webaccessauth.cpp:116:22: error: ‘authentication’ was not declared in this scope
int colonIndex = authentication.indexOf(':');
^
webaccessauth.cpp:124:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto username = authentication.left(colonIndex);
^
webaccessauth.cpp:124:10: error: ‘username’ does not name a type
auto username = authentication.left(colonIndex);
^
webaccessauth.cpp:125:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto passwordHash = this->hashPassword(authentication.mid(colonIndex + 1));
^
webaccessauth.cpp:125:10: error: ‘passwordHash’ does not name a type
auto passwordHash = this->hashPassword(authentication.mid(colonIndex + 1));
^
webaccessauth.cpp:127:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto userIterator = m_passwords.find(username);
^
webaccessauth.cpp:127:10: error: ‘userIterator’ does not name a type
auto userIterator = m_passwords.find(username);
^
webaccessauth.cpp:128:8: error: ‘userIterator’ was not declared in this scope
if(userIterator == m_passwords.end() || (*userIterator).passwordHash != passwordHash)
^
webaccessauth.cpp:128:77: error: ‘passwordHash’ was not declared in this scope
if(userIterator == m_passwords.end() || (*userIterator).passwordHash != passwordHash)
^
webaccessauth.cpp:133:13: error: ‘userIterator’ was not declared in this scope
return *userIterator;
^
webaccessauth.cpp: In member function ‘bool WebAccessAuth::setUserLevel(const QString&, WebAccessUserLevel)’:
webaccessauth.cpp:144:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto userIt = m_passwords.find(username);
^
webaccessauth.cpp:144:10: error: ‘userIt’ does not name a type
auto userIt = m_passwords.find(username);
^
webaccessauth.cpp:145:8: error: ‘userIt’ was not declared in this scope
if(userIt == m_passwords.end())
^
webaccessauth.cpp:148:7: error: ‘userIt’ was not declared in this scope
(*userIt).level = level;
^
webaccessauth.cpp: In member function ‘QString WebAccessAuth::hashPassword(const QString&) const’:
webaccessauth.cpp:187:76: error: ‘QCryptographicHash::Algorithm’ is not a class or namespace
return QCryptographicHash::hash(password.toUtf8(), PASSWORD_HASH_ALGORITHM).toHex();
^
webaccessauth.cpp: In member function ‘bool WebAccessAuth::hasAtLeastOneAdmin() const’:
webaccessauth.cpp:192:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
for(auto& user : m_passwords)
^
webaccessauth.cpp:192:15: error: ISO C++ forbids declaration of ‘user’ with no type [-fpermissive]
for(auto& user : m_passwords)
^
webaccessauth.cpp:192:22: error: range-based ‘for’ loops are not allowed in C++98 mode
for(auto& user : m_passwords)
^
webaccessauth.cpp:194:17: error: request for member ‘level’ in ‘user’, which is of non-class type ‘int’
if(user.level >= WebAccessUserLevel::SUPER_ADMIN)
^
webaccessauth.cpp:194:26: error: ‘WebAccessUserLevel’ is not a class or namespace
if(user.level >= WebAccessUserLevel::SUPER_ADMIN)
^
webaccessauth.cpp: In member function ‘WebAccessUser WebAccessAuth::authenticateRequest(const QHttpRequest*, QHttpResponse*) const’:
webaccessauth.cpp:134:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
webaccessauth.cpp: In member function ‘QString WebAccessAuth::hashPassword(const QString&) const’:
webaccessauth.cpp:188:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: all warnings being treated as errors
make[2]: *** [webaccessauth.o] Fehler 1
make[2]: *** Auf noch nicht beendete Prozesse wird gewartet …
In file included from webaccessconfiguration.cpp:23:0:
webaccessauth.h: In constructor ‘WebAccessUser::WebAccessUser()’:
webaccessauth.h:59:13: error: ‘WebAccessUserLevel’ is not a class or namespace
, level(WebAccessUserLevel::GUEST)
^
webaccessconfiguration.cpp: In static member function ‘static QString WebAccessConfiguration::getPasswordsConfigHTML(WebAccessAuth*)’:
webaccessconfiguration.cpp:227:5: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto users = auth->getUsers();
^
webaccessconfiguration.cpp:227:10: error: ‘users’ does not name a type
auto users = auth->getUsers();
^
webaccessconfiguration.cpp:229:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
for(auto& user : users)
^
webaccessconfiguration.cpp:229:15: error: ISO C++ forbids declaration of ‘user’ with no type [-fpermissive]
for(auto& user : users)
^
webaccessconfiguration.cpp:229:22: error: range-based ‘for’ loops are not allowed in C++98 mode
for(auto& user : users)
^
webaccessconfiguration.cpp:229:22: error: ‘users’ was not declared in this scope
webaccessconfiguration.cpp:231:9: error: ‘auto’ changes meaning in C++11; please remove it [-Werror=c++0x-compat]
auto& username = user.username;
^
webaccessconfiguration.cpp:231:15: error: ISO C++ forbids declaration of ‘username’ with no type [-fpermissive]
auto& username = user.username;
^
webaccessconfiguration.cpp:231:31: error: request for member ‘username’ in ‘user’, which is of non-class type ‘int’
auto& username = user.username;
^
webaccessconfiguration.cpp:232:26: error: request for member ‘level’ in ‘user’, which is of non-class type ‘int’
int level = user.level;
^
webaccessconfiguration.cpp:234:51: error: invalid operands of types ‘const char*’ and ‘const char [3]’ to binary ‘operator+’
html += "<tr id=\"auth-row-" + username + "\">";
^
webaccessconfiguration.cpp:235:37: error: invalid operands of types ‘const char*’ and ‘const char [6]’ to binary ‘operator+’
html += "<td>" + username + "</td>";
^
webaccessconfiguration.cpp:237:17: error: invalid operands of types ‘const char*’ and ‘const char [16]’ to binary ‘operator+’
" placeholder=\"" + tr("Leave blank to not change") + "\"></td>";
^
webaccessconfiguration.cpp:239:61: error: invalid operands of types ‘const char*’ and ‘const char [3]’ to binary ‘operator+’
html += "<select id=\"auth-level-" + username + "\">";
^
webaccessconfiguration.cpp:241:58: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::VC_ONLY) + "\"";
^
webaccessconfiguration.cpp:242:25: error: ‘WebAccessUserLevel’ is not a class or namespace
if(level >= WebAccessUserLevel::VC_ONLY && level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccessconfiguration.cpp:242:64: error: ‘WebAccessUserLevel’ is not a class or namespace
if(level >= WebAccessUserLevel::VC_ONLY && level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccessconfiguration.cpp:246:58: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::SIMPLE_DESK_AND_VC) + "\"";
^
webaccessconfiguration.cpp:247:25: error: ‘WebAccessUserLevel’ is not a class or namespace
if(level >= WebAccessUserLevel::SIMPLE_DESK_AND_VC && level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccessconfiguration.cpp:247:75: error: ‘WebAccessUserLevel’ is not a class or namespace
if(level >= WebAccessUserLevel::SIMPLE_DESK_AND_VC && level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccessconfiguration.cpp:251:58: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::SUPER_ADMIN) + "\"";
^
webaccessconfiguration.cpp:252:25: error: ‘WebAccessUserLevel’ is not a class or namespace
if(level >= WebAccessUserLevel::SUPER_ADMIN)
^
webaccessconfiguration.cpp:259:87: error: invalid operands of types ‘const char*’ and ‘const char [5]’ to binary ‘operator+’
html += "<button role=\"button\" onclick=\"authChangeUser('" + username + "')\">"
^
webaccessconfiguration.cpp:261:87: error: invalid operands of types ‘const char*’ and ‘const char [5]’ to binary ‘operator+’
html += "<button role=\"button\" onclick=\"authDeleteUser('" + username + "')\">"
^
webaccessconfiguration.cpp:273:54: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::VC_ONLY) + "\">"
^
webaccessconfiguration.cpp:275:54: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::SIMPLE_DESK_AND_VC) + "\">"
^
webaccessconfiguration.cpp:277:54: error: ‘WebAccessUserLevel’ is not a class or namespace
html += "<option value=\"" + QString::number(WebAccessUserLevel::SUPER_ADMIN) + "\">"
^
webaccessconfiguration.cpp: At global scope:
webaccessconfiguration.cpp:215:9: error: unused parameter ‘auth’ [-Werror=unused-parameter]
QString WebAccessConfiguration::getPasswordsConfigHTML(WebAccessAuth *auth)
^
cc1plus: all warnings being treated as errors
make[2]: *** [webaccessconfiguration.o] Fehler 1
In file included from webaccess.cpp:26:0:
webaccessauth.h: In constructor ‘WebAccessUser::WebAccessUser()’:
webaccessauth.h:59:13: error: ‘WebAccessUserLevel’ is not a class or namespace
, level(WebAccessUserLevel::GUEST)
^
webaccess.cpp: In member function ‘void WebAccess::slotHandleRequest(QHttpRequest*, QHttpResponse*)’:
webaccess.cpp:115:25: error: ‘WebAccessUserLevel’ is not a class or namespace
if(user.level < WebAccessUserLevel::LOGGED_IN)
^
webaccess.cpp:150:35: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user.level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:185:35: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user.level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:218:35: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user.level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:227:35: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user.level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccess.cpp:237:35: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user.level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp: In member function ‘void WebAccess::slotHandleWebSocketRequest(QHttpConnection*, QString)’:
webaccess.cpp:319:44: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:386:34: error: ‘WebAccessUserLevel’ is not a class or namespace
if(user && user->level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:447:44: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SUPER_ADMIN)
^
webaccess.cpp:491:44: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::VC_ONLY)
^
webaccess.cpp:619:48: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccess.cpp:635:48: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccess.cpp:650:48: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccess.cpp:666:44: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::SIMPLE_DESK_AND_VC)
^
webaccess.cpp:684:40: error: ‘WebAccessUserLevel’ is not a class or namespace
if(m_auth && user && user->level < WebAccessUserLevel::VC_ONLY)
^
make[2]: *** [webaccess.o] Fehler 1
make[2]: Verzeichnis »/home/siegmund/qlcplus/qlcplus/webaccess/src« wird verlassen
make[1]: *** [sub-src-make_first] Fehler 2
make[1]: Verzeichnis »/home/siegmund/qlcplus/qlcplus/webaccess« wird verlassen
make: *** [sub-webaccess-make_first-ordered] Fehler 2
Trying to build with Qt 5.2.1 on Xubuntu 14.04 64Bit.
Any help is much appreciated!
Regards,
siegmund
[EDIT: Already tried "make distclean" and a fresh clone of the repo]