Saat mencoba membangun numpy secara lokal, saya menerima kesalahan berikut:
gcc: numpy/core/src/common/mem_overlap.c
gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so
/usr/bin/ld: build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: multiple definition of `PyArrayDTypeMeta_Type'; build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: first defined here
collect2: error: ld returned 1 exit status
error: Command "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so" failed with exit status 1
`membagi` mengidentifikasi 1809a0fde sebagai sumber masalah. Perhatikan bahwa kesalahan ini hanya terjadi pada saya dengan gcc 10.1. Tidak ada masalah yang ditemukan dengan gcc 9.3. ### Mereproduksi contoh kode:$ git clone https://github.com/numpy/numpy.git
$ git checkout 1809a0fde
$ pip install -r test_requirements.txt
$ python setup.py build_ext -i
### Pesan eror:Dijalankan dari direktori sumber numpy. Sumber sitonisasi numpy/random/_bounded_integers.pxd.in tidak berubah Memproses numpy/random/mtrand.pyx numpy/random/_common.pyx tidak berubah Memproses numpy/random/_mt19937.pyx Memproses numpy/random/_pcg64.pyx Memproses numpy/random/_generator.pyx numpy/random/_bounded_integers.pyx tidak berubah numpy/random/_sfc64.pyx tidak berubah numpy/random/_philox.pyx tidak berubah numpy/random/bit_generator.pyx tidak berubah numpy/random/_bounded_integers.pyx.in tidak berubah numpy/core/setup.py:406: MismatchCAPIWarning: API tidak cocok terdeteksi, nomor versi C API harus diperbarui. Versi C api saat ini adalah 13, dengan checksum 17a0f366e55ec05e5c5c149123478452, tetapi checksum yang tercatat untuk C API versi 13 di core/codegen_dir/cversions.txt adalah 5b0e8bbded00b166125974fc71e80a33. Jika fungsi ditambahkan di C API, Anda harus memperbarui C_API_VERSION di numpy/core/setup_common.py. check_api_version(C_API_VERSION, codegen_dir) blas_opt_info: blas_mkl_info: sesuaikan UnixCCompiler perpustakaan mkl_rt tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] TIDAK TERSEDIA blis_info: perpustakaan blis tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] TIDAK TERSEDIA openblas_info: Kompiler C: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC membuat /tmp/tmpp_pb97eg/tmp membuat /tmp/tmpp_pb97eg/tmp/tmpp_pb97eg kompilasi opsi: '-c' gcc: /tmp/tmpp_pb97eg/source.c gcc -pthread /tmp/tmpp_pb97eg/tmp/tmpp_pb97eg/source.o -L/usr/lib64 -lopenblas -o /tmp/tmpp_pb97eg/a.out DITEMUKAN: perpustakaan = ['openblas', 'openblas'] library_dirs = ['/usr/lib64'] bahasa = c define_makros = [('HAVE_CBLAS', Tidak Ada)] DITEMUKAN: perpustakaan = ['openblas', 'openblas'] library_dirs = ['/usr/lib64'] bahasa = c define_makros = [('HAVE_CBLAS', Tidak ada)] jalur yang tidak ada di 'numpy/distutils': 'site.cfg' lapack_opt_info: lapack_mkl_info: perpustakaan mkl_rt tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] TIDAK TERSEDIA openblas_lapack_info: Kompiler C: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC membuat /tmp/tmpeicqr4ho/tmp membuat /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho kompilasi opsi: '-c' gcc: /tmp/tmpeicqr4ho/source.c gcc -pthread /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o -L/usr/lib64 -lopenblas -o /tmp/tmpeicqr4ho/a.out /usr/bin/ld: /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o: dalam fungsi `main': /tmp/tmpeicqr4ho/source.c:4: referensi tidak terdefinisi ke `zungqr_' kumpulkan2: kesalahan: ld mengembalikan 1 status keluar TIDAK TERSEDIA openblas_clapack_info: perpustakaan openblas,lapack tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib /'] TIDAK TERSEDIA api_info: perpustakaan nyala tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] TIDAK TERSEDIA atlas_3_10_threads_info: Mengatur PTATLAS=ATLAS perpustakaan lapack_atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib tatlas perpustakaan, tatlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan lapack_atlas tidak ditemukan di /usr/local/lib tatlas perpustakaan, tatlas tidak ditemukan di /usr/local/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib64 perpustakaan tatlas, tatlas tidak ditemukan di /usr/lib64 perpustakaan lapack_atlas tidak ditemukan di /usr/lib perpustakaan tatlas,tatlas tidak ditemukan di /usr/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib/ perpustakaan tatlas, tatlas tidak ditemukan di /usr/lib/TIDAK TERSEDIA atlas_3_10_info: perpustakaan lapack_atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan satlas, satlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan lapack_atlas tidak ditemukan di /usr/local/lib perpustakaan satlas, satlas tidak ditemukan di /usr/local/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib64 perpustakaan satlas, satlas tidak ditemukan di /usr/lib64 perpustakaan lapack_atlas tidak ditemukan di /usr/lib perpustakaan satlas, satlas tidak ditemukan di /usr/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib/ perpustakaan satlas, satlas tidak ditemukan di /usr/lib/ TIDAK TERSEDIA atlas_threads_info: Mengatur PTATLAS=ATLAS perpustakaan lapack_atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan ptf77blas,ptcblas,atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan lapack_atlas tidak ditemukan di /usr/local/lib perpustakaan ptf77blas,ptcblas,atlas tidak ditemukan di /usr/local/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib64 perpustakaan ptf77blas,ptcblas,atlas tidak ditemukan di /usr/lib64 perpustakaan lapack_atlas tidak ditemukan di /usr/lib perpustakaan ptf77blas,ptcblas,atlas tidak ditemukan di /usr/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib/ perpustakaan ptf77blas,ptcblas,atlas tidak ditemukan di /usr/lib/ TIDAK TERSEDIA atlas_info: perpustakaan lapack_atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan f77blas,cblas,atlas tidak ditemukan di /home/ross/.virtualenvs/tmp/lib perpustakaan lapack_atlas tidak ditemukan di /usr/local/lib perpustakaan f77blas,cblas,atlas tidak ditemukan di /usr/local/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib64 perpustakaan f77blas,cblas,atlas tidak ditemukan di /usr/lib64 perpustakaan lapack_atlas tidak ditemukan di /usr/lib perpustakaan f77blas,cblas,atlas tidak ditemukan di /usr/lib perpustakaan lapack_atlas tidak ditemukan di /usr/lib/ perpustakaan f77blas,cblas,atlas tidak ditemukan di /usr/lib/ TIDAK TERSEDIA mempercepat_info: TIDAK TERSEDIA info_lapack: perpustakaan lapack tidak ditemukan di ['/home/ross/.virtualenvs/tmp/lib', '/usr/local/lib', '/usr/lib64', '/usr/lib', '/usr/lib/' ] TIDAK TERSEDIA /home/ross/repos/numpy/numpy/distutils/system_info.py:1748: Peringatan Pengguna: Pustaka Lapack (http://www.netlib.org/lapack/) tidak ditemukan. Direktori untuk mencari perpustakaan dapat ditentukan di numpy/distutils/site.cfg file (bagian [lapack]) atau dengan pengaturan variabel lingkungan LAPACK. kembali getattr(self, '_calc_info_{}'.format(name))() lapack_src_info: TIDAK TERSEDIA /home/ross/repos/numpy/numpy/distutils/system_info.py:1748: Peringatan Pengguna: Lapack (http://www.netlib.org/lapack/) sumber tidak ditemukan. Direktori untuk mencari sumber dapat ditentukan di numpy/distutils/site.cfg file (bagian [lapack_src]) atau dengan pengaturan variabel lingkungan LAPACK_SRC. kembali getattr(self, '_calc_info_{}'.format(name))() TIDAK TERSEDIA numpy_linalg_lapack_lite: DITEMUKAN: bahasa = c define_makros = [('HAVE_BLAS_ILP64', Tidak Ada), ('BLAS_SYMBOL_SUFFIX', '64_')] jalur yang tidak ada di 'numpy/random': '{gen}.pxd' jalur yang tidak ada di 'numpy/random': '{gen}.pxd' /usr/lib/python3.8/distutils/dist.py:274: UserWarning: Opsi distribusi tidak diketahui: 'define_macros' warnings.warn(msg) menjalankan build_ext menjalankan build_src build_src membangun sumber py_modules membangun perpustakaan sumber "npymath" menambahkan 'numpy/core/src/npymath' ke include_dirs. Tidak ada - tidak ada yang dilakukan dengan h_files = ['numpy/core/src/npymath/npy_math_internal.h'] membangun perpustakaan sumber "npysort" menambahkan 'numpy/core/src/common' ke include_dirs. Tidak ada - tidak ada yang dilakukan dengan h_files = ['numpy/core/src/common/npy_sort.h', 'numpy/core/src/common/npy_partition.h', 'numpy/core/src/common/npy_binsearch.h'] membangun perpustakaan sumber "npyrandom" membangun ekstensi sumber "numpy.core._multiarray_tests" conv_template:> numpy/core/src/multiarray/_multiarray_tests.c membangun ekstensi sumber "numpy.core._multiarray_umath" conv_template:> numpy/core/src/multiarray/arraytypes.c conv_template:> numpy/core/src/multiarray/einsum.c conv_template:> numpy/core/src/multiarray/lowlevel_strided_loops.c conv_template:> numpy/core/src/multiarray/nditer_templ.c conv_template:> numpy/core/src/multiarray/scalartypes.c conv_template:> numpy/core/src/umath/funcs.inc menambahkan 'numpy/core/src/umath' ke include_dirs. conv_template:> numpy/core/src/umath/simd.inc conv_template:> numpy/core/src/umath/loops.h conv_template:> numpy/core/src/umath/loops.c conv_template:> numpy/core/src/umath/matmul.h conv_template:> numpy/core/src/umath/matmul.c conv_template:> numpy/core/src/umath/clip.h conv_template:> numpy/core/src/umath/clip.c conv_template:> numpy/core/src/umath/scalarmath.c conv_template:> numpy/core/src/npymath/npy_math_internal.h menambahkan 'numpy/core/src/npymath' ke include_dirs. conv_template:> numpy/core/src/npymath/ieee754.c conv_template:> numpy/core/src/npymath/npy_math_complex.c conv_template:> numpy/core/src/common/templ_common.h menambahkan 'numpy/core/src/common' ke include_dirs. conv_template:> numpy/core/src/common/npy_cpu_features.c numpy.core - tidak ada yang dilakukan dengan h_files = ['numpy/core/src/umath/funcs.inc', 'numpy/core/src/umath/simd.inc', 'numpy/core/src/umath/loops.h ', 'numpy/core/src/umath/matmul.h', 'numpy/core/src/umath/clip.h', 'numpy/core/src/npymath/npy_math_internal.h', 'numpy/core/src /common/templ_common.h', 'numpy/core/include/numpy/config.h', 'numpy/core/include/numpy/_numpyconfig.h', 'numpy/core/include/numpy/__multiarray_api.h', 'numpy/core/include/numpy/__ufunc_api.h'] membangun ekstensi sumber "numpy.core._umath_tests" membangun ekstensi sumber "numpy.core._rational_tests" membangun ekstensi sumber "numpy.core._struct_ufunc_tests" membangun ekstensi sumber "numpy.core._operand_flag_tests" membangun ekstensi sumber "numpy.fft._pocketfft_internal" ekstensi bangunan "numpy.linalg.lapack_lite" sources ### Peringatan: Menggunakan lapack yang tidak dioptimalkan ### ekstensi bangunan "numpy.linalg._umath_linalg" sources ### Peringatan: Menggunakan lapack yang tidak dioptimalkan ### ekstensi bangunan "numpy.random._mt19937" sumber ekstensi bangunan "numpy.random._philox" sumber membangun ekstensi sumber "numpy.random._pcg64" membangun ekstensi sumber "numpy.random._sfc64" membangun ekstensi sumber "numpy.random._common" membangun ekstensi sumber "numpy.random.bit_generator" membangun ekstensi sumber "numpy.random._generator" ekstensi bangunan "numpy.random._bounded_integers" sumber ekstensi bangunan "numpy.random.mtrand" sources membangun sumber data_files build_src: membuat file konfigurasi npy-pkg sesuaikan UnixCCompiler sesuaikan UnixCCompiler menggunakan new_build_clib membangun perpustakaan 'npymath' kompilasi sumber C Kompiler C: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC opsi kompilasi: '-Inumpy/core/src/npymath -Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src /npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/include -I/usr/include/python3.8 - Inumpy/core/src/common -Inumpy/core/src/npymath -c' opsi tambahan: '-std=c99' gcc: numpy/core/src/npymath/halffloat.c gcc: numpy/core/src/npymath/npy_math.c gcc: numpy/core/src/npymath/npy_math_complex.c gcc: numpy/core/src/npymath/ieee754.c ar: menambahkan 4 file objek ke build/temp.linux-x86_64-3.8/libnpymath.a membangun perpustakaan 'npyrandom' kompilasi sumber C Kompiler C: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC opsi kompilasi: '-Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src /multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/include -I/usr/include/python3.8 -Inumpy/core/src/common - Inumpy/inti/src/npymath -c' opsi tambahan: '-std=c99' gcc: numpy/random/src/distributions/distributions.c gcc: numpy/random/src/distributions/random_mvhg_count.c gcc: numpy/random/src/distributions/random_mvhg_marginals.c gcc: numpy/random/src/distributions/random_hypergeometric.c ar: menambahkan 5 file objek ke build/temp.linux-x86_64-3.8/libnpyrandom.a sesuaikan UnixCCompiler sesuaikan UnixCCompiler menggunakan new_build_ext membangun ekstensi 'numpy.core._multiarray_tests' kompilasi sumber C Kompiler C: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC opsi kompilasi: '-DNPY_INTERNAL_BUILD=1 -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Inumpy/core/include/numpy -Inumpy/common -Inumpy/core/s /src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/ross/.virtualenvs/tmp/ include -I/usr/include/python3.8 -Inumpy/core/src/common -Inumpy/core/src/npymath -c' opsi tambahan: '-std=c99' gcc: numpy/core/src/common/mem_overlap.c gcc: numpy/core/src/multiarray/_multiarray_tests.c gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common, --sesuai kebutuhan,-z,relro,-z,sekarang build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/ src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so /usr/bin/ld: build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h: 1825: definisi ganda dari `PyArrayDTypeMeta_Type'; build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1825: pertama kali didefinisikan di sini kumpulkan2: kesalahan: ld mengembalikan 1 status keluar error: Perintah "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,-- sort-common,--as-needed,-z,relro,-z,sekarang build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/ numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so" gagal dengan status keluar 1
Versi Python: 3.8.3
Versi NumPy: 1809a0fde
Versi GCC: 10.1
Saya kira definisi itu mungkin tidak sepenuhnya OK untuk berada di sana (sekarang setelah Anda mencatatnya, analisis statis dentang juga memberi saya beberapa peringatan tentang itu). Mereka mungkin perlu dipindahkan ke file header tertentu sampai kami menjadikannya publik?
Saya melihat itu juga, gcc 10.1.1. Upgrade OS saya tadi malam, selalu ada masalah setelah ...
Saya melihat ini dengan
jupiter<strong i="6">@23</strong>:06 ➤ gcc --version
gcc (GCC) 10.1.0
Copyright (C) 2020 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.
Kesalahannya adalah extern
hilang pada deklarasi, gh-16435 harus memperbaikinya, Ross mengujinya untuk saya.
Komentar yang paling membantu
Kesalahannya adalah
extern
hilang pada deklarasi, gh-16435 harus memperbaikinya, Ross mengujinya untuk saya.