Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fitter_dnsg.cc does not compile on OS X #49

Open
kdpenner opened this issue Feb 2, 2018 · 4 comments
Open

Fitter_dnsg.cc does not compile on OS X #49

kdpenner opened this issue Feb 2, 2018 · 4 comments

Comments

@kdpenner
Copy link

kdpenner commented Feb 2, 2018

Hello,

I've installed gcc, gfortran, and boost using anaconda. The python setup script fails with status 1 almost immediately:

running install
running bdist_egg
running egg_info
running build_src
build_src
building extension "bdsf._pytesselate" sources
f2py options: ['']
adding 'build/src.macosx-10.6-x86_64-2.7/fortranobject.c' to sources.
adding 'build/src.macosx-10.6-x86_64-2.7' to include_dirs.
building extension "bdsf._cbdsm" sources
building extension "bdsf.nat.natgridmodule" sources
build_src: building npy-pkg config files
writing requirements to bdsf.egg-info/requires.txt
writing bdsf.egg-info/PKG-INFO
writing top-level names to bdsf.egg-info/top_level.txt
writing dependency_links to bdsf.egg-info/dependency_links.txt
reading manifest file 'bdsf.egg-info/SOURCES.txt'
writing manifest file 'bdsf.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-x86_64/egg
running install_lib
running build_py
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize Gnu95FCompiler
Found executable /Users/kpenner/anaconda2/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using build_ext
building 'bdsf._cbdsm' extension
compiling C++ sources
C compiler: g++ -fno-strict-aliasing -I/Users/kpenner/anaconda2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall

compile options: '-Isrc/c++ -I/Users/kpenner/anaconda2/lib/python2.7/site-packages/numpy/core/include -I/Users/kpenner/anaconda2/include/python2.7 -c'
g++: src/c++/Fitter_dnsg.cc
In file included from src/c++/Fitters.h:5:0,
from src/c++/Fitter_dnsg.cc:11:
src/c++/MGFunction.h:49:14: error: 'numeric' has not been declared
MGFunction(numeric::array data, numeric::array mask, double weight);
^
src/c++/MGFunction.h:49:29: error: expected ')' before 'data'
MGFunction(numeric::array data, numeric::array mask, double weight);
^
src/c++/MGFunction.h:123:3: error: 'numeric' does not name a type
numeric::array m_data;
^
src/c++/MGFunction.h:125:3: error: 'numeric' does not name a type
numeric::array m_mask;
^
In file included from src/c++/Fitters.h:5:0,
from src/c++/Fitter_dnsg.cc:11:
src/c++/MGFunction.h:49:14: error: 'numeric' has not been declared
MGFunction(numeric::array data, numeric::array mask, double weight);
^
src/c++/MGFunction.h:49:29: error: expected ')' before 'data'
MGFunction(numeric::array data, numeric::array mask, double weight);
^
src/c++/MGFunction.h:123:3: error: 'numeric' does not name a type
numeric::array m_data;
^
src/c++/MGFunction.h:125:3: error: 'numeric' does not name a type
numeric::array m_mask;
^
error: Command "g++ -fno-strict-aliasing -I/Users/kpenner/anaconda2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Isrc/c++ -I/Users/kpenner/anaconda2/lib/python2.7/site-packages/numpy/core/include -I/Users/kpenner/anaconda2/include/python2.7 -c src/c++/Fitter_dnsg.cc -o build/temp.macosx-10.6-x86_64-2.7/src/c++/Fitter_dnsg.o" failed with exit status 1

@tammojan
Copy link
Collaborator

tammojan commented Feb 2, 2018

Could you comment on how you installed gfortran, gcc and boost from conda? Then we could try to reproduce this. In particular, gfortran is not in a default channel, which one did you install?

@kdpenner
Copy link
Author

kdpenner commented Feb 5, 2018

Boost was easy: conda install boost. So was gcc: conda install gcc. gfortran is included with conda's gcc package.

@ojima
Copy link

ojima commented Feb 16, 2018

This error occurs because PyBDSF was written for an older version of the Boost.Python library. Boost 1.65 has been reported to discontinue boost/python/numeric.hpp in favor of similar numpy functionality. Compiling using an installation of Boost 1.63 should work.

@kdpenner
Copy link
Author

I installed boost 1.61.0, the version previous to 1.65.1 that conda has, and compiled PyBDSF. Yet when I try to run it I get a mysterious "Illegal instruction: 4" error and never see the PyBDSF prompt. I've compiled the software on OS 10.12 and most of the libraries seem made for 10.6. Is this a problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants