profess-dev / profess

MIT License
2 stars 0 forks source link

Trouble compiling #14

Open wcwitt opened 1 year ago

wcwitt commented 1 year ago

Compilation difficulties submitted by Taylor Baird

[ 84%] Building CXX object CMakeFiles/profess-pybind.dir/pyrofess/pyrofess.cpp.o
In file included from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/cast.h:15,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/attr.h:13,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/detail/class.h:12,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/pybind11.h:13,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/functional.h:12,
                 from /home/taylor/profess/pyrofess/pyrofess.cpp:6:
/home/taylor/profess/external/deft/external/pybind11/include/pybind11/detail/type_caster_base.h: In function ‘std::string pybind11::detail::error_string()’:
/home/taylor/profess/external/deft/external/pybind11/include/pybind11/detail/type_caster_base.h:517:26: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
  517 |             frame = frame->f_back;
      |                          ^~
In file included from /home/taylor/miniconda3/envs/profess/include/python3.11/Python.h:42,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/detail/common.h:211,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/cast.h:13,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/attr.h:13,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/detail/class.h:12,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/pybind11.h:13,
                 from /home/taylor/profess/external/deft/external/pybind11/include/pybind11/functional.h:12,
                 from /home/taylor/profess/pyrofess/pyrofess.cpp:6:
/home/taylor/miniconda3/envs/profess/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
make[2]: *** [CMakeFiles/profess-pybind.dir/build.make:76: CMakeFiles/profess-pybind.dir/pyrofess/pyrofess.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:289: CMakeFiles/profess-pybind.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
wcwitt commented 1 year ago

@Taylor-96, I've just updated to use the latest pybind11. Would you mind trying again from scratch, and letting me know which compilers and python version you use? Thanks!

wcwitt commented 1 year ago

Update from email

just an update. I tried a different installation of fftw3 and gave it another go. I got a few errors saying "‘size_t’ was not declared in this scope" in the building of extras.cpp as it seems like there is something going on with the namespaces. After switching to std::size_t in minimizers.cpp and minimizers.h everything built correctly. Now all the unit tests passed so it seems like updating to pybind11 did the trick.