๋ก์ปฌ์์ numpy๋ฅผ ๋น๋ํ๋ ค๊ณ ํ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
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
`bisect`ing์ 1809a0fde๋ฅผ ๋ฌธ์ ์ ์์ธ์ผ๋ก ์๋ณํ์ต๋๋ค. ์ด ์ค๋ฅ๋ gcc 10.1์์๋ง ๋ฐ์ํ์ต๋๋ค. gcc 9.3์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค. ### ์ฌํ ์ฝ๋ ์์ :$ git clone https://github.com/numpy/numpy.git
$ git checkout 1809a0fde
$ pip install -r test_requirements.txt
$ python setup.py build_ext -i
### ์๋ฌ ๋ฉ์์ง:numpy ์์ค ๋๋ ํ ๋ฆฌ์์ ์คํ ์ค์ ๋๋ค. ์ธํฌ ํ ์์ค numpy / random / _bounded_integers.pxd.in์ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / mtrand.pyx ์ฒ๋ฆฌ numpy / random / _common.pyx๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / _mt19937.pyx ์ฒ๋ฆฌ numpy / random / _pcg64.pyx ์ฒ๋ฆฌ numpy / random / _generator.pyx ์ฒ๋ฆฌ numpy / random / _bounded_integers.pyx๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / _sfc64.pyx๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / _philox.pyx๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / bit_generator.pyx๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / random / _bounded_integers.pyx.in์ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. numpy / core / setup.py : 406 : MismatchCAPIWarning : API ๋ถ์ผ์น๊ฐ ๊ฐ์ง๋์์ต๋๋ค. C API ๋ฒ์ ๋ฒํธ๋ฅผ ์ ๋ฐ์ดํธํด์ผํฉ๋๋ค. ํ์ฌ C api ๋ฒ์ ์ 13์ด๊ณ ์ฒดํฌ์ฌ์ 17a0f366e55ec05e5c5c149123478452์ด์ง๋ง core / codegen_dir / cversions.txt์ C API ๋ฒ์ 13์ ๋ํด ๊ธฐ๋ก ๋ ์ฒดํฌ์ฌ์ 5b0e8bbded00b166125974fc71e80a33์ ๋๋ค. C API์ ํจ์๊ฐ ์ถ๊ฐ ๋ ๊ฒฝ์ฐ numpy / core / setup_common.py์์ C_API_VERSION์ ์ ๋ฐ์ดํธํด์ผํฉ๋๋ค. check_api_version (C_API_VERSION, codegen_dir) blas_opt_info : blas_mkl_info : UnixCCompiler ์ฌ์ฉ์ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ mkl_rt๊ฐ [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์์ ์ฐพ์ ์ ์์ต๋๋ค. ] ์ฌ์ฉํ ์ ์์ต๋๋ค blis_info : [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ blis๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ] ์ฌ์ฉํ ์ ์์ต๋๋ค openblas_info : 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 = ์ผ๋ฐ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ -O3 -pipe -fno-plt -fPIC / tmp / tmpp_pb97eg / tmp ์์ฑ / tmp / tmpp_pb97eg / tmp / tmpp_pb97eg ์์ฑ ์ปดํ์ผ ์ต์ : '-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 ๋ น์ด๋ค: ๋ผ์ด๋ธ๋ฌ๋ฆฌ = [ 'openblas', 'openblas'] library_dirs = [ '/ usr / lib64'] ์ธ์ด = c define_macros = [( 'HAVE_CBLAS', ์์)] ๋ น์ด๋ค: ๋ผ์ด๋ธ๋ฌ๋ฆฌ = [ 'openblas', 'openblas'] library_dirs = [ '/ usr / lib64'] ์ธ์ด = c define_macros = [( 'HAVE_CBLAS', ์์)] 'numpy / distutils'์ ์กด์ฌํ์ง ์๋ ๊ฒฝ๋ก : 'site.cfg' lapack_opt_info : lapack_mkl_info : ๋ผ์ด๋ธ๋ฌ๋ฆฌ mkl_rt๋ฅผ [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์์ ์ฐพ์ ์ ์์ต๋๋ค. ] ์ฌ์ฉํ ์ ์์ต๋๋ค openblas_lapack_info : 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 = ์ผ๋ฐ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ -O3 -pipe -fno-plt -fPIC / tmp / tmpeicqr4ho / tmp ์์ฑ / tmp / tmpeicqr4ho / tmp / tmpeicqr4ho ์์ฑ ์ปดํ์ผ ์ต์ : '-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 : 'main'ํจ์์์ : /tmp/tmpeicqr4ho/source.c:4 :`zungqr_ '์ ๋ํ ์ ์๋์ง ์์ ์ฐธ์กฐ collect2 : ์ค๋ฅ : ld๊ฐ 1 ์ข ๋ฃ ์ํ๋ฅผ ๋ฆฌํดํ์ต๋๋ค. ์ฌ์ฉํ ์ ์์ต๋๋ค openblas_clapack_info : ๋ผ์ด๋ธ๋ฌ๋ฆฌ openblas, lapack์ด [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib์์ ์ฐพ์ ์ ์์ต๋๋ค. / '] ์ฌ์ฉํ ์ ์์ต๋๋ค flame_info : [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๊ฝ์ ์ฐพ์ ์ ์์ต๋๋ค. ] ์ฌ์ฉํ ์ ์์ต๋๋ค atlas_3_10_threads_info : PTATLAS = ATLAS ์ค์ /home/ross/.virtualenvs/tmp/lib์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ tatlas, tatlas๋ /home/ross/.virtualenvs/tmp/lib์์ ์ฐพ์ ์ ์์ต๋๋ค. / usr / local / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ tatlas, tatlas๋ / usr / local / lib์์ ์ฐพ์ ์ ์์ต๋๋ค. / usr / lib64์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ tatlas, tatlas๋ / usr / lib64์์ ์ฐพ์ ์ ์์ต๋๋ค. / usr / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ tatlas, tatlas๋ / usr / lib์์ ์ฐพ์ ์ ์์ต๋๋ค. / usr / lib /์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ tatlas, tatlas๊ฐ / usr / lib /์ ์์ต๋๋ค.์ฌ์ฉํ ์ ์์ต๋๋ค atlas_3_10_info : /home/ross/.virtualenvs/tmp/lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ satlas, satlas๋ฅผ /home/ross/.virtualenvs/tmp/lib์์ ์ฐพ์ ์ ์์ต๋๋ค. / usr / local / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ satlas, satlas๋ฅผ / usr / local / lib์์ ์ฐพ์ ์ ์์ / usr / lib64์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib64์์ ์ฐพ์ ์ ์์ / usr / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib์์ ์ฐพ์ ์ ์์ / usr / lib /์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib /์์ ์ฐพ์ ์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค atlas_threads_info : PTATLAS = ATLAS ์ค์ /home/ross/.virtualenvs/tmp/lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ /home/ross/.virtualenvs/tmp/lib์ ์์ต๋๋ค. / usr / local / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ / usr / local / lib์ ์์ต๋๋ค. / usr / lib64์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ / usr / lib64์ ์์ต๋๋ค. / usr / lib์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์ ์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ / usr / lib์ ์์ต๋๋ค. / usr / lib /์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ / usr / lib /์ ์์ต๋๋ค. ์ฌ์ฉํ ์ ์์ต๋๋ค atlas_info : /home/ross/.virtualenvs/tmp/lib์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ f77blas, cblas, atlas๊ฐ /home/ross/.virtualenvs/tmp/lib์ ์์ต๋๋ค. / usr / local / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ f77blas, cblas, atlas๊ฐ / usr / local / lib์ ์์ต๋๋ค. / usr / lib64์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ f77blas, cblas, atlas๊ฐ / usr / lib64์ ์์ต๋๋ค. / usr / lib์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ f77blas, cblas, atlas๊ฐ / usr / lib์ ์์ต๋๋ค. / usr / lib /์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack_atlas๊ฐ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ f77blas, cblas, atlas๊ฐ / usr / lib /์ ์์ต๋๋ค. ์ฌ์ฉํ ์ ์์ต๋๋ค ๊ฐ์ ์ ๋ณด : ์ฌ์ฉํ ์ ์์ต๋๋ค lapack_info : ๋ผ์ด๋ธ๋ฌ๋ฆฌ lapack์ด [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์์ ์ฐพ์ ์ ์์ต๋๋ค. ] ์ฌ์ฉํ ์ ์์ต๋๋ค /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : UserWarning : Lapack (http://www.netlib.org/lapack/) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ ํ ๋๋ ํ ๋ฆฌ๋ numpy / distutils / site.cfg ํ์ผ (์น์ [lapack]) ๋๋ ์ค์ LAPACK ํ๊ฒฝ ๋ณ์. return getattr (self, '_calc_info _ {}'. format (name)) () lapack_src_info : ์ฌ์ฉํ ์ ์์ต๋๋ค /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : UserWarning : Lapack (http://www.netlib.org/lapack/) ์์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์์ค๋ฅผ ๊ฒ์ ํ ๋๋ ํ ๋ฆฌ๋ numpy / distutils / site.cfg ํ์ผ (์น์ [lapack_src]) ๋๋ ์ค์ LAPACK_SRC ํ๊ฒฝ ๋ณ์. return getattr (self, '_calc_info _ {}'. format (name)) () ์ฌ์ฉํ ์ ์์ต๋๋ค numpy_linalg_lapack_lite : ๋ น์ด๋ค: ์ธ์ด = c define_macros = [( 'HAVE_BLAS_ILP64', ์์), ( 'BLAS_SYMBOL_SUFFIX', '64_')] 'numpy / random'์ ์กด์ฌํ์ง ์๋ ๊ฒฝ๋ก : '{gen} .pxd' 'numpy / random'์ ์กด์ฌํ์ง ์๋ ๊ฒฝ๋ก : '{gen} .pxd' /usr/lib/python3.8/distutils/dist.py:274 : UserWarning : ์ ์์๋ ๋ฐฐํฌ ์ต์ : 'define_macros' warnings.warn (msg) build_ext ์คํ build_src ์คํ build_src py_modules ์์ค ๋น๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ "npymath"์์ค ๋น๋ include_dirs์ 'numpy / core / src / npymath'๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์-h_files = [ 'numpy / core / src / npymath / npy_math_internal.h']๋ก ์ํ๋์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ "npysort"์์ค ๋น๋ include_dirs์ 'numpy / core / src / common'์ ์ถ๊ฐํฉ๋๋ค. ์์-h_files = [ 'numpy / core / src / common / npy_sort.h', 'numpy / core / src / common / npy_partition.h', 'numpy / core / src / common / npy_binsearch.h'] ๋ผ์ด๋ธ๋ฌ๋ฆฌ "npyrandom"์์ค ๋น๋ ๊ฑด๋ฌผ ํ์ฅ "numpy.core._multiarray_tests"์์ค conv_template :> numpy / core / src / multiarray / _multiarray_tests.c ๊ฑด๋ฌผ ํ์ฅ "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 include_dirs์ 'numpy / core / src / umath'๋ฅผ ์ถ๊ฐํฉ๋๋ค. 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 include_dirs์ 'numpy / core / src / npymath'๋ฅผ ์ถ๊ฐํฉ๋๋ค. 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 include_dirs์ 'numpy / core / src / common'์ ์ถ๊ฐํฉ๋๋ค. conv_template :> numpy / core / src / common / npy_cpu_features.c numpy.core-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'] ๊ฑด๋ฌผ ํ์ฅ "numpy.core._umath_tests"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.core._rational_tests"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.core._struct_ufunc_tests"์์ค ํ์ฅ "numpy.core._operand_flag_tests"์์ค ๋น๋ ๋น๋ฉ ํ์ฅ "numpy.fft._pocketfft_internal"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.linalg.lapack_lite"์์ค ### ๊ฒฝ๊ณ : ์ต์ ํ๋์ง ์์ lapack ์ฌ์ฉ ### ๊ฑด๋ฌผ ํ์ฅ "numpy.linalg._umath_linalg"์์ค ### ๊ฒฝ๊ณ : ์ต์ ํ๋์ง ์์ lapack ์ฌ์ฉ ### ๊ฑด๋ฌผ ํ์ฅ "numpy.random._mt19937"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.random._philox"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.random._pcg64"์์ค ๋น๋ ํ์ฅ "numpy.random._sfc64"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.random._common"์์ค ํ์ฅ "numpy.random.bit_generator"์์ค ๋น๋ ํ์ฅ "numpy.random._generator"์์ค ๋น๋ ๋น๋ ํ์ฅ "numpy.random._bounded_integers"์์ค ๊ฑด๋ฌผ ํ์ฅ "numpy.random.mtrand"์์ค data_files ์์ค ๋น๋ build_src : npy-pkg ๊ตฌ์ฑ ํ์ผ ๋น๋ UnixCCompiler ์ฌ์ฉ์ ์ ์ new_build_clib๋ฅผ ์ฌ์ฉํ์ฌ UnixCCompiler ์ฌ์ฉ์ ์ ์ 'npymath'๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์ถ C ์์ค ์ปดํ์ผ 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 = ์ผ๋ฐ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ -O3 -pipe -fno-plt -fPIC ์ปดํ์ผ ์ต์ : '-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 ' ์ถ๊ฐ ์ต์ : '-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 : build / temp.linux-x86_64-3.8 / libnpymath.a์ 4 ๊ฐ์ ๊ฐ์ฒด ํ์ผ ์ถ๊ฐ 'npyrandom'๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์ถ C ์์ค ์ปดํ์ผ 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 = ์ผ๋ฐ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ -O3 -pipe -fno-plt -fPIC ์ปดํ์ผ ์ต์ : '-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 ' ์ถ๊ฐ ์ต์ : '-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 : build / temp.linux-x86_64-3.8 / libnpyrandom.a์ 5 ๊ฐ์ ๊ฐ์ฒด ํ์ผ ์ถ๊ฐ UnixCCompiler ์ฌ์ฉ์ ์ ์ new_build_ext๋ฅผ ์ฌ์ฉํ์ฌ UnixCCompiler ์ฌ์ฉ์ ์ ์ 'numpy.core._multiarray_tests'ํ์ฅ ๋น๋ C ์์ค ์ปดํ์ผ 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 = ์ผ๋ฐ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ -O3 -pipe -fno-plt -fPIC ์ปดํ์ผ ์ต์ : '-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 / 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 / ํฌํจ -I / usr / include / python3.8 -Inumpy / core / src / common -Inumpy / core / src / npymath -c ' ์ถ๊ฐ ์ต์ : '-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, --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 : 1825 :`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 : ์ฌ๊ธฐ์ ์ฒ์ ์ ์ ๋จ collect2 : ์ค๋ฅ : ld๊ฐ 1 ์ข ๋ฃ ์ํ๋ฅผ ๋ฆฌํดํ์ต๋๋ค. ์ค๋ฅ : ๋ช ๋ น "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 "์คํจ ์ข ๋ฃ ์ํ 1
Python ๋ฒ์ : 3.8.3
NumPy ๋ฒ์ : 1809a0fde
GCC ๋ฒ์ : 10.1
๋๋ ๊ทธ ์ ์๊ฐ ์๋ง๋ ๊ฑฐ๊ธฐ์์๋ ๊ฒ์ด ์๊ฒฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค (์ด์ ๋น์ ์ด ์ฃผ๋ชฉ ํ์ผ๋ฏ๋ก clang ์ ์ ๋ถ์์ ๋์๊ฒ ๊ทธ๊ฒ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํฉ๋๋ค). ๊ณต๊ฐ ํ ๋๊น์ง ํน์ ํค๋ ํ์ผ๋ก ์ด๋ํด์ผํ ๊น์?
๋๋ gcc 10.1.1์ ๋ณธ๋ค. ์ด์ ฏ๋ฐค์ ๋ด OS๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋๋ฐ ํญ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์๋ณด๊ณ ์๋ค
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.
์ค๋ฅ๋ ์ ์ธ์ extern
๋๋ฝ์ด๋ฉฐ gh-16435๊ฐ์ด๋ฅผ ์์ ํด์ผํฉ๋๋ค. Ross๊ฐ ๋๋ฅผ ์ํด ํ
์คํธํ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ค๋ฅ๋ ์ ์ธ์
extern
๋๋ฝ์ด๋ฉฐ gh-16435๊ฐ์ด๋ฅผ ์์ ํด์ผํฉ๋๋ค. Ross๊ฐ ๋๋ฅผ ์ํด ํ ์คํธํ์ต๋๋ค.