Open rafi opened 6 years ago
I can reproduce this. Still thinking about how to fix it.
python-config
is officially recommended over distutils.sysconfig
for configuring linking against Python, and the major difference between python-config
and the previous distutils.sysconfig
-based approach - the addition of $LIBS
- was needed to fix #35 by linking against libutil.
In this case, MacPorts links Python against libintl, which is part of gettext, but doesn't put libintl anywhere the system linker will look for it:
$ otool -L /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin/libpython3.6.dylib
...
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
As a workaround you can sudo ln -s /opt/local/lib/libintl.8.dylib /usr/local/lib/libintl.8.dylib
.
Thanks for the detailed explanation. I've tried symlinking as a work-around, but still getting the same error unfortunately.
Same issue though I'm using homebrew
It seems my issue was related to using asdf version manager. I tried using homebrew python and the build succeeded.
Same here. I'm using python 3.8.6
, installed via pyenv
on macOS. I tried reinstalling with env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.8.6
, but running ./install.sh
fails with the same output:
Python 3 selected by PY3=ON
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found Boost: /usr/local/include (found version "1.67.0") found components: program_options
-- Found PythonInterp: /Users/metalelf0/.pyenv/shims/python3 (found suitable version "3.8.6", minimum required is "3")
-- Found PythonInterp: /Users/metalelf0/.pyenv/shims/python3 (found version "3.8.6")
-- Found PythonConfig: -I/Users/metalelf0/.pyenv/versions/3.8.6/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -I/Users/metalelf0/.pyenv/versions/3.8.6/include/python3.8; -L/Users/metalelf0/.pyenv/versions/3.8.6/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/config-3.8-darwin -lpython3.8 -lintl -ldl -framework CoreFoundation
-- Optional package ICU was not found
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/metalelf0/.local/share/nvim/site/pack/packer/start/cpsm/build
[ 11%] Building CXX object CMakeFiles/cpsm_core.dir/src/str_util.cc.o
[ 22%] Linking CXX static library libcpsm_core.a
[ 22%] Built target cpsm_core
[ 33%] Building CXX object CMakeFiles/cpsm_cli.dir/src/cpsm_cli_main.cc.o
[ 44%] Linking CXX executable cpsm_cli
[ 44%] Built target cpsm_cli
[ 55%] Building CXX object CMakeFiles/cpsm_py.dir/src/ctrlp_util.cc.o
[ 66%] Building CXX object CMakeFiles/cpsm_py.dir/src/python_extension.cc.o
[ 77%] Linking CXX shared library cpsm_py.so
ld: library not found for -lintl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [cpsm_py.so] Error 1
make[1]: *** [CMakeFiles/cpsm_py.dir/all] Error 2
make: *** [all] Error 2
The gettext
library that provides libintl
is installed via homebrew (I also tried reinstalling and relinking it without success).
@jdsutherland how did you use homebrew python? You installed it and started a shell without loading pyenv, or manually provided some env vars to the install.sh
script?
The issue with pyenv may be fixed in v2.3.2 via adding the Homebrew LDFLAGS.
Since commit 45676e7f836a13c194fb8ab1a53e30b250333f31 I'm receiving an error while compiling cpsm with Python3 support: (I'm using macOS with Macports, and not Homebrew)