Troubleshooting and Common Errors
gsl_sf_bessel_J0 or gsl_sf_bessel_Jn Undefined at Link Time
- Cause:
GSL libraries were not linked after the object files,
gsl-configis not onPATH, or the GSL include/library directories are not discoverable.- Fix:
Use the current Makefile and either expose
gsl-configor pass GSL paths explicitly:make clean make PYTHON=python3 GSL_INCLUDE=/usr/include \ GSL_LIB=/usr/lib/x86_64-linux-gnu all
python: command not found
- Cause:
The Makefile default uses
PYTHON ?= python. Some systems only providepython3.- Fix:
Pass
PYTHON=python3tomake.
No module named Cython
- Cause:
The wrapper build imports Cython from
setup.py.- Fix:
Install Python build dependencies before running
make all:python3 -m pip install --user numpy Cython scipy
Undefined SetNumberThreads or get_nthreads Symbols
- Cause:
Older builds did not compile the thread-control and PXD helper symbols required by the Cython wrapper.
- Fix:
Rebuild from a checkout containing the current fixes:
make clean make PYTHON=python3 all
wlcovpy requires ADDONSON=1, CLASSLIBON=1, PXDON=1
- Cause:
setup.pygeneratespython/cwlcovpy.pxdfrom the active addon settings. The current wrapper expectsADDONSON,CLASSLIBON, andPXDONto be enabled.- Fix:
Keep
ADDONSON = 1inMakefile_settingsandCLASSLIBON = 1inaddons/Makefile_addons_settings.PXDONis enabled automatically whenCLASSLIBONis on.
ABI Mismatch During Wrapper Import
- Cause:
The compiled static library and generated
python/cwlcovpy.pxdwere built with different structure declarations or addon settings.- Fix:
Rebuild from a clean tree:
make clean make PYTHON=python3 all
integral Is Zero or NaN
Possible causes:
ellminandellmaxfall outside the tabulatedclsfilerange;C_ellcontains non-positive values and the log interpolation becomes invalid;the input table is not sorted by increasing
ell;the integration grid is too coarse for the angular scales.
- Fix:
Validate the input table and rerun a convergence check over
pppandellmax.
Build Warnings
The current C build can emit warnings related to unchecked system calls,
sprintf format safety, and long logfile paths. They do not block the
validated examples, but they should be addressed before hardening the package
for automated production pipelines.