- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 Linux 和 Windows 制作 Python 应用程序的可执行文件,但 Windows 构建过程失败。
这是我的 Makefile:
all: transpile compile-linux compile-w64
transpile: main.py
cython --embed -3 -o main.c main.py
compile-linux: main.c
gcc -I/usr/include/python3.7 -o main main.c -lpython3.7m -lpthread -lm -lutil -ldl
compile-w32: main.c
i686-w64-mingw32-gcc -o main-x86.exe main.c -lpython3.7m -lpthread -lm -lutil -ldl -I/usr/include/python3.7m
compile-w64: main.c
x86_64-w64-mingw32-gcc -o main-x64.exe main.c -lpython3.7m -lpthread -lm -lutil -ldl -I/usr/include/python3.7m
(all
中没有提到compile-w32
,因为我还没有使用它,稍后我会尝试一下。)
当我尝试编译代码时,这是 makefile/mingw32-gcc 输出。 linux版本编译没有任何问题(我已经运行过一次并且运行良好),但是windows x86_64显示很多错误和警告:
cython --embed -3 -o main.c main.py
gcc -I/usr/include/python3.7 -o main main.c -lpython3.7m -lpthread -lm -lutil -ldl
x86_64-w64-mingw32-gcc -o main-x64.exe main.c -lpython3.7m -lpthread -lm -lutil -ldl -I/usr/include/python3.7m
In file included from /usr/include/python3.7m/Python.h:8,
from main.c:4:
/usr/include/python3.7m/pyconfig.h:104:3: error: #error unknown multiarch location for pyconfig.h
104 | # error unknown multiarch location for pyconfig.h
| ^~~~~
In file included from /usr/include/python3.7m/pyport.h:4,
from /usr/include/python3.7m/Python.h:63,
from main.c:4:
/usr/include/python3.7m/pyconfig.h:104:3: error: #error unknown multiarch location for pyconfig.h
104 | # error unknown multiarch location for pyconfig.h
| ^~~~~
In file included from /usr/include/python3.7m/pymath.h:4,
from /usr/include/python3.7m/Python.h:86,
from main.c:4:
/usr/include/python3.7m/pyconfig.h:104:3: error: #error unknown multiarch location for pyconfig.h
104 | # error unknown multiarch location for pyconfig.h
| ^~~~~
In file included from /usr/include/python3.7m/pytime.h:5,
from /usr/include/python3.7m/Python.h:87,
from main.c:4:
/usr/include/python3.7m/pyconfig.h:104:3: error: #error unknown multiarch location for pyconfig.h
104 | # error unknown multiarch location for pyconfig.h
| ^~~~~
In file included from /usr/include/python3.7m/Python.h:99,
from main.c:4:
/usr/include/python3.7m/unicodeobject.h:68:2: error: #error Must define SIZEOF_WCHAR_T
68 | #error Must define SIZEOF_WCHAR_T
| ^~~~~
In file included from /usr/include/python3.7m/pystate.h:11,
from /usr/include/python3.7m/traceback.h:8,
from /usr/include/python3.7m/Python.h:119,
from main.c:4:
/usr/include/python3.7m/pythread.h:122:5: error: #error "Require native threads. See https://bugs.python.org/issue31370"
122 | # error "Require native threads. See https://bugs.python.org/issue31370"
| ^~~~~
/usr/include/python3.7m/pythread.h:131:5: error: unknown type name ‘NATIVE_TSS_KEY_T’
131 | NATIVE_TSS_KEY_T _key;
| ^~~~~~~~~~~~~~~~
In file included from /usr/include/python3.7m/Python.h:156,
from main.c:4:
/usr/include/python3.7m/fileutils.h:95:27: warning: ‘struct stat’ declared inside parameter list will not be visible outside of this definition or declaration
95 | # define _Py_stat_struct stat
| ^~~~
/usr/include/python3.7m/fileutils.h:100:12: note: in expansion of macro ‘_Py_stat_struct’
100 | struct _Py_stat_struct *status);
| ^~~~~~~~~~~~~~~
/usr/include/python3.7m/fileutils.h:95:27: warning: ‘struct stat’ declared inside parameter list will not be visible outside of this definition or declaration
95 | # define _Py_stat_struct stat
| ^~~~
/usr/include/python3.7m/fileutils.h:104:12: note: in expansion of macro ‘_Py_stat_struct’
104 | struct _Py_stat_struct *status);
| ^~~~~~~~~~~~~~~
/usr/include/python3.7m/fileutils.h:108:12: warning: ‘struct stat’ declared inside parameter list will not be visible outside of this definition or declaration
108 | struct stat *status);
| ^~~~
make: *** [Makefile:13: compile-w64] Error 1
我已经尝试过 this page 的解决方案(使用 CFLAGS
)但它不起作用。
如果需要,其余代码(包括 main.py 文件)为 here.
最佳答案
您不能将 /usr/include
和 /usr/lib(64)
与 MinGW 一起使用。这些位置包含为您的 Linux 系统配置和编译的软件。
相反,当使用 MinGW for Windows 交叉编译应用程序时,您需要使用为 Windows 构建的库进行编译并链接到该库。
某些 Linux 发行版可能包含包 编辑:显然,使用 MinGW 交叉编译 Python 本身是 no longer supported .mingw64-python3-devel
(或类似包)以及必要的 Python 头文件和库文件。如果您的发行版没有提供此类包,您需要自己使用 MinGW 编译 Python。
关于python - mingw32-gcc 编译 Cython 输出 : unknown multiarch location for pyconfig. h (和其他警告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59010659/
我已经开始使用 MinGW/MSYS 试图在 Windows 上使用一些 Linux 库。使用 ./configure --prefix=/mingw make make install 到目前为止运
Mingw.org显然还没有完全死掉,但最新的版本是 gcc 4.5.2,而 4.6 已经是老新闻了。 有谁知道我在哪里可以获得 mingw-gcc 4.6+?是 mingw-w64更活跃?他们似乎也
假设我有三个 C 源文件。前两个是 LIB(lib*.a?),第三个是使用它们的应用程序。 第一个是(re.c): int re(int i) { return i; } 第二个是(test.
MinGW、MinGW-w64和MinGW-builds有什么区别? 我应该使用哪一个在 Windows 8 机器上使用 Eclipse IDE 编译 c++ 11 源代码? 最佳答案 MinGW 是
至少从2021-01-10T15:19:40Z起,我无法访问www.mingw.org。 据我所知,这是mingw官方网页。 有人知道www.mingw.org的状态吗?或者,还有其他套房问这个问题吗
MinGW 有什么区别项目和 32-bit portion MinGW-w64的项目? MinGW-w64 的 32 位部分与 x64 有任何关系吗? 看起来他们的编译器做了完全相同的事情......
我想在 Windows 中有一个 POSIX 环境(用作系统 shell ),同时生成 native Windows 可执行文件。过去的一种选择是安装 Cygwin 和 MinGW,并可能从 Cygw
Qt 和 Code blocks 下载包都有自己的 MinGW 编译器。还有独立的 MinGW 本身。它们之间有什么区别吗? 我可以使用 Qt 的 MinGW 来构建代码块项目,反之亦然吗? 如果我想
我已经通过网络安装程序安装了 msysgit。我最终得到了将近 2 GB 的资料,其中包括 git 源和 MinGW。 我有三个问题 我已经从 MinGW.org 获得了 MinGW。现在我想我可以删
我终于设置了 mingw 和 msys,现在我想编译 libjpeg。我从 projekt 页面 (jpeg-8d) 下载了最新的 libjpeg 源并提取了文件。 然后我像这样运行配置命令: ./c
我喜欢 vcpkg 的想法,但我想我更愿意坚持使用 MinGW 作为我的编译器。 我找不到关于我是否可以设置(或如何设置)vcpkg 以便它为 MinGW 而不是 MSVC 编译包的任何资源。如果可能
我将在 Windows 中使用 NetCDF,我认为它必须使用 MinGW 编译,因为我的主程序和所有其他库已经使用 MinGW 编译。 但是当我使用 MinGW(gcc 版本 4.6.2)时。我收到
我正在尝试设置 MinGW。我已经下载了最新的安装程序,它安装了 mingw-get,但该实用程序无法获取软件包并提供以下类型的消息: mingw-get: * ERROR * Get package
我想使用 mingw-get-inst-20120421.exe 从 Sourceforge 下载 MinGW C 和 C++ gnu 编译器。它让我可以选择下载预先打包的存储库或最新的存储库。当我在
我刚刚按照 this post 设置了 MinGW 环境 但是如何向其中添加 3rd 方库? 最佳答案 库由两个主要组件组成——C 头文件和编译后的目标代码存档。 GCC 有一系列令人眼花缭乱的方法来
我不断收到错误: fatal error: mpi.h: No such file or directory 如何将 mpi.h 作为默认库包含在内?我相信我已经将 c:\MPICH2\bin 放在
看我有这样的代码 #include #include #include void* thread_function(void) { printf ("This is thread %d \n",p
如何使用 Mingw 在 Windows 中为源目录应用补丁文件? 最佳答案 使用mingw-get获取msys补丁 mingw-get install msys-patch 然后像unix一样使用p
我正在尝试使用来自 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%
我刚刚在 Windows 上安装了 MinGW,但无法像在 Linux 甚至 PuTTY 上那样进行复制/粘贴。将文本(例如从 chrome)复制并粘贴到 MinGW shell 中的技巧是什么? 最
我是一名优秀的程序员,十分优秀!