[solved] Compilation errors

Support for running, installing or compiling OpenMW

Before you submit a bug report for the first time, please read: Bug reporting guidelines
Locked
marzoul
Posts: 9
Joined: 09 Mar 2013, 12:18

[solved] Compilation errors

Post by marzoul » 12 Jul 2013, 09:07

Hi,

I've been experiencing compilation problems for several days. This is what I get when compiling straight from the GIT repo:

Code: Select all

In file included from /home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/data.hpp:21:0,
                 from /home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/data.cpp:2:
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp: In instantiation of ‘void CSMWorld::IdCollection<ESXRecordT, IdAccessorT>::load(ESM::ESMReader&, bool, CSMWorld::UniversalId::Type) [with ESXRecordT = ESM::Global; IdAccessorT = CSMWorld::IdAccessor<ESM::Global>]’:
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/data.cpp:336:60:   required from here
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: error: ‘setRecord’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
                 setRecord (index, record);
                                         ^
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: note: declarations in dependent base ‘CSMWorld::Collection<ESM::Global, CSMWorld::IdAccessor<ESM::Global> >’ are not found by unqualified lookup
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: note: use ‘this->setRecord’ instead
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:59:63: error: ‘searchId’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
             int index = searchId (IdAccessorT().getId (record));
                                                               ^
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:59:63: note: declarations in dependent base ‘CSMWorld::Collection<ESM::Global, CSMWorld::IdAccessor<ESM::Global> >’ are not found by unqualified lookup
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:59:63: note: use ‘this->searchId’ instead
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:68:38: error: ‘appendRecord’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
                 appendRecord (record2);
                                      ^
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:68:38: note: declarations in dependent base ‘CSMWorld::Collection<ESM::Global, CSMWorld::IdAccessor<ESM::Global> >’ are not found by unqualified lookup
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:68:38: note: use ‘this->appendRecord’ instead
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:80:42: error: ‘setRecord’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
                 setRecord (index, record2);
                                          ^
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:80:42: note: declarations in dependent base ‘CSMWorld::Collection<ESM::Global, CSMWorld::IdAccessor<ESM::Global> >’ are not found by unqualified lookup
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:80:42: note: use ‘this->setRecord’ instead
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp: In instantiation of ‘void CSMWorld::IdCollection<ESXRecordT, IdAccessorT>::load(ESM::ESMReader&, bool, CSMWorld::UniversalId::Type) [with ESXRecordT = ESM::GameSetting; IdAccessorT = CSMWorld::IdAccessor<ESM::GameSetting>]’:
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/data.cpp:337:58:   required from here
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: error: ‘setRecord’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
                 setRecord (index, record);
                                         ^
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: note: declarations in dependent base ‘CSMWorld::Collection<ESM::GameSetting, CSMWorld::IdAccessor<ESM::GameSetting> >’ are not found by unqualified lookup
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:50:41: note: use ‘this->setRecord’ instead
/home/adrien/Dev/AUR/openmw-git/src/openmw/apps/opencs/model/world/idcollection.hpp:59:63: error: ‘searchId’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
             int index = searchId (IdAccessorT().getId (record));
This is only the beginning. Lots of similar errors are puked by the compiler (gcc/g++ 4.8.1 on Archlinux amd64), the full log is there: http://pastebin.com/SULbRRJH
It's about compilation of this source file :

src/openmw/apps/opencs/model/world/data.cpp

Am I the only one to get this ? Any idea about the causes ?
I tried cleaning repo, re-cloning the repo etc to be sure, to not avail.
Last edited by marzoul on 13 Jul 2013, 22:46, edited 1 time in total.

User avatar
psi29a
Posts: 4807
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Compilation errors

Post by psi29a » 12 Jul 2013, 12:57

gcc 4.7.3 here, and it compiles

Could it be that your toolchain is 'new' in which case, we could use your help and getting OpenMW working with your toolchain.

marzoul
Posts: 9
Joined: 09 Mar 2013, 12:18

Re: Compilation errors

Post by marzoul » 12 Jul 2013, 15:38

Ha! Now compilation works. A recent commit just came.

git log says :

Code: Select all

commit 29b7734b52f28e1715f3e625a82bd13806a14e0b
Author: greye <[email protected]>
Date:   Fri Jul 12 08:33:02 2013 +0400

    add qualifiers for names in templates to make gcc 4.7+ happy
And git pull said...

Code: Select all

Fast-forward
 apps/opencs/model/world/idcollection.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
greye just earned the "marzoul's favourite OpenMW developer" title.
Thanks guys !
:D

User avatar
WeirdSexy
Posts: 611
Joined: 15 Sep 2011, 18:50
Location: USA

Re: Compilation errors

Post by WeirdSexy » 12 Jul 2013, 15:40

I get the same thing on Arch-64 g++ 4.8.1

Edit: Ninja'd. I'll have to try compiling again with the new commit later today.

marzoul
Posts: 9
Joined: 09 Mar 2013, 12:18

Re: Compilation errors

Post by marzoul » 12 Jul 2013, 21:12

So now there are no more errors. However there are a handful of warnings.
If OpenMW devs thinks warnings are of any interest I can provide them... as soon as I can have the whole project entirely recompiled. An interesting thing to note is that OpenMW actually takes much more time to compile than the entire Linux kernel, argh xD

User avatar
Zini
Posts: 5537
Joined: 06 Aug 2011, 15:16

Re: Compilation errors

Post by Zini » 12 Jul 2013, 22:19

The only warnings I know of are located in 3rd party libraries. There is little we can do about that.

Locked