Open Tang-SL opened 1 month ago
I got around this problem by using gcc installed by MacPorts. You are using the compiler installed with Anaconda. The documentation (https://mural.uv.es/imarvi/docums/uvmultifit/#installation) asks you to install gsl with MacPorts, so installing everything with MacPorts is easier.
sudo port install gcc14
In your ~/.bash_profile, add the following lines to use gcc14 instead of clang.
alias gcc='gcc-mp-14'
alias g++='g++-mp-14'
Hi diwen2,
Thanks for this, I have reprocessed the steps and installed everyting with MacPorts and set the alias. But I am still getting the same error. I am not sure how can I get rid of clang?
This means the alias did not work. After adding the alias to ~/.bash_profile, reload your bash profile by
source ~/.bash_profile
Then check your gcc version
gcc --version
You should then see something like
gcc-mp-14 (MacPorts gcc14 14.2.0_1+stdlib_flag) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you still see clang for your gcc, you can define a symbolic link for gcc and g++ to link to your MacPorts gcc-mp-14 and g++-mp-14.
sudo ln -s source_file symbolic_link
Now I have made it link to gcc after defining the symbolic link. However, the compilation still failed, with an error saying that a file is missing.
sudo port install fftw-3
After installing fftw-3, I added include_dirs=['/opt/local/include']
and library_dirs=['/opt/local/lib']
in Extension of the setup.py to help it to find it. Now I am getting another error saying that
ld: unknown option: -export-dynamic
collect2: error: ld returned 1 exit status
I tried to remove -export-dynamic from the extra_link_args of EXtension in the setup file, then I get a different error saying that
g++: error: missing argument to '-Xlinker'
You don't have to remove -export-dynamic. I kept it and it worked. The problem is that your installed compiler does not support x86 architecture. You said you had MacOS 14.0. I was assuming your laptop was with Apple Silicon. Is your laptop using an Intel processor instead? I have not tested installation with MacPorts on an Intel Mac. You would need gcc for your machine's architecture, which should be achievable with MacPorts, too. However, I don't have an Intel Mac to test the installation. Hopefully the author of the repository can help you.
No, it's not an Intel one, it's with Apple M2 Pro.
So what is the error when putting back '-export-dynamic' like in the original setup.py?
It says:
ld: unknown option: -export-dynamic
collect2: error: ld returned 1 exit status
The full error message is attached as a screenshot in my above comment.
I cannot reproduce your error. I don't know how exactly you added include_dirs=['/opt/local/include']
and library_dirs=['/opt/local/lib']
. I did not need those. I only modified the setup.py file on line 19 to
include_gsl_dir = "/opt/local/include"
.
Are you sure you are using gcc from MacPorts? The alias worked for me. I don't know if your symbolic link is set up correctly. Using the alias for gcc and g++, I have the following.
which gcc-mp-14
/opt/local/bin/gcc-mp-14
which ld
/opt/local/bin/ld
gcc --version
gcc-mp-14 (MacPorts gcc14 14.2.0_1+stdlib_flag) 14.2.0
Yes, my outputs are exactly the same as yours.
Hello,
I am following the documentation to install UVMultiFit on my MacOS 14.0 laptop. The problem happens when I run
python setup.py build_ext --inplace
The full error messages follow: /Users/tang/opt/anaconda3/envs/pypeit/lib/python3.10/site-packages/numpy/core/include/numpy/__multiarray_api.h:1483:1: warning: unused function '_import_array' [-Wunused-function] _import_array(void) ^ 1 warning generated. g++ -bundle -undefined dynamic_lookup -Wl,-rpath,/Users/tang/opt/anaconda3/envs/pypeit/lib -L/Users/tang/opt/anaconda3/envs/pypeit/lib -Wl,-rpath,/Users/tang/opt/anaconda3/envs/pypeit/lib -L/Users/tang/opt/anaconda3/envs/pypeit/lib build/temp.macosx-10.9-x86_64-cpython-310/_QuinnFringe.o build/temp.macosx-10.9-x86_64-cpython-310/_uvmultimodel.o -lgsl -lgslcblas -lfftw3 -o build/lib.macosx-10.9-x86_64-cpython-310/_uvmultimodel.cpython-310-darwin.so -Xlinker -export-dynamic ld: unknown options: -export-dynamic clang: error: linker command failed with exit code 1 (use -v to see invocation) error: command '/usr/bin/g++' failed with exit code 1
This seems to be a problem with gcc, but I am not familiar with C++, I'd appreciate your help.
Best, Shenli