ValeevGroup / mpqc

The Massively Parallel Quantum Chemistry program, MPQC, computes properties of atoms and molecules from first principles using the time independent Schrödinger equation.
66 stars 24 forks source link

Build failure regarding TA namespace #53

Closed mbanck closed 7 years ago

mbanck commented 7 years ago

After finally having current MADNESS and TiledArray-0.6.0 (hopefully) working again in Debian, I tried to build MPQC master with MPQC_NEW_FEATURES, but get the following build failure:

[ 39%] Building CXX object src/lib/chemistry/qc/basis/CMakeFiles/basis.dir/tiledbasisset.cpp.o
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/lib/chemistry/qc/basis" && /usr/bin/c++   -DHAVE_CONFIG_H -DMPQC_NEW_FEATURES -DMPQC_R12 -I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/lib" -I"/<<PKGBUILDDIR>>/src/lib" -I"/<<PKGBUILDDIR>>/include" -I/usr/include/mpich -I/usr/include/eigen3 -I/usr/include/libint2 -I/usr/include/openbabel-2.0 -I/usr/include/TiledArray/external  -std=c++11 -g -O2 -std=c++11   -o CMakeFiles/basis.dir/tiledbasisset.cpp.o -c "/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp"
[...]
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:36:17: error: reference to 'TA' is ambiguous
 using namespace TA;
                 ^~
In file included from /usr/include/tiledarray.h:23:0,
                 from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.hpp:31,
                 from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:28:
/usr/include/tiledarray_fwd.h:78:26: note: candidates are: namespace TA = TiledArray;
 namespace TA = TiledArray;
                          ^
In file included from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/shellorder.hpp:39:0,
                 from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.hpp:39,
                 from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:28:
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/kcluster.hpp:37:11: note:                 namespace mpqc::TA { }
 namespace TA{
           ^~
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:36:17: error: 'TA' is not a namespace-name
 using namespace TA;
                 ^~
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:36:19: error: expected namespace-name before ';' token
 using namespace TA;
                   ^
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:38:47: error: 'TiledBasisSet' was not declared in this scope
 static sc::ClassDesc TiledBasisSet_cd( typeid(TiledBasisSet), "TiledBasisSet",
                                               ^~~~~~~~~~~~~
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:38:47: note: suggested alternative:
In file included from /<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.cpp:28:0:
/<<PKGBUILDDIR>>/src/lib/chemistry/qc/basis/tiledbasisset.hpp:50:9: note:   'mpqc::TA::TiledBasisSet'
   class TiledBasisSet: public sc::GaussianBasisSet {
         ^~~~~~~~~~~~~

Is this a known problem? Am I compiling TiledArray incorrectly? As far as I can tell, the namespace TA = TiledArray; in tiledarray_fwd.h should be active.

evaleev commented 7 years ago

resolved in 9c3df01f50be9300f0ddd45dedc4b5faf31d7bd6