16
Windows a jiné systémy / Re:Cython ve Windows
« kdy: 03. 09. 2022, 10:13:10 »
Tomuhle právě nerozumím. Takž k tomu potřebuji nainstalovat tohle?
https://pypi.org/project/msvc-runtime/
A jak potom doinstaluji make, překladač a linker? Nepotřebuji mohutné IDE, ani na něj nemám místo. Zdrojové *.c kódy vygeneruje Cython, potřebuji je jen přeložit pomocí příkazů na příkazové řádce. Potřebuji poradit, přesně který instalační balíček mám stáhnout a nainstalovat. Tiše doufám, že microsoft takový základ poskytuje v nekomerční bezplatné verzi.
Na linuxu překládám programy pomocí jednoduchého makefile. V podstatě jen potřebuji nahradit gcc něčím ve windows. Ten zbytek by měl fungovat beze změny, krom toho rm -f, ale to je marginálie. Pokud by Windows potřeboval toho víc, pak bych ještě potřeboval poradit s úpravou toho makefile. Ideálně bych chtěl radu od někoho, kdo to reálně používá a má vychytané různé mouchy.
https://pypi.org/project/msvc-runtime/
A jak potom doinstaluji make, překladač a linker? Nepotřebuji mohutné IDE, ani na něj nemám místo. Zdrojové *.c kódy vygeneruje Cython, potřebuji je jen přeložit pomocí příkazů na příkazové řádce. Potřebuji poradit, přesně který instalační balíček mám stáhnout a nainstalovat. Tiše doufám, že microsoft takový základ poskytuje v nekomerční bezplatné verzi.
Na linuxu překládám programy pomocí jednoduchého makefile. V podstatě jen potřebuji nahradit gcc něčím ve windows. Ten zbytek by měl fungovat beze změny, krom toho rm -f, ale to je marginálie. Pokud by Windows potřeboval toho víc, pak bych ještě potřeboval poradit s úpravou toho makefile. Ideálně bych chtěl radu od někoho, kdo to reálně používá a má vychytané různé mouchy.
Kód: [Vybrat]
PYTHON=python
CYTHON=cython
COMPILER=gcc
LINKER=gcc
CFLAGS=-O9
INCLUDE_DIR:=$(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_python_inc())")
LIBRARY_DIR:=$(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
PYTHON_LIB:=$(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBRARY')[3:-2])")
SYSLIBS:=$(shell $(PYTHON) -c "from distutils import sysconfig; print(sysconfig.get_config_var('SYSLIBS'))")
all: main \
config
.PHONY: clean
# nemazat C
.PRECIOUS: %.c
clean:
rm -f *.o \
rm -f *.c \
# O -> EXE
%: %.o
$(LINKER) -o $@ -L$(LIBRARY_DIR) -l$(PYTHON_LIB) $(SYSLIBS) $<
# C -> O
%.o: %.c
$(COMPILER) $(CFLAGS) -I$(INCLUDE_DIR) -c $< -o $@
# Python -> C
%.c: %.py
$(CYTHON) -a --embed $<
%.c: %.pyx
$(CYTHON) -a --embed $<