我过去常常在windows上构建一个项目,现在我试图在macos (M1)上构建它,我得到了依赖项(嵌套在依赖项中)上的错误:
pixman-0.34.0/pixman/pixman-x86.c:103:4: error: unknown register name '%eax' in asm
: "%eax", "%ecx");
^
pixman-0.34.0/pixman/pixman-x86.c:136:4: error: invalid output constraint '=a' in asm
: "=a" (*a), "=r" (*b), "=c" (*c), "=d" (*d)
^我周围也有警告:
pixman-0.34.0/pixman/pixman-x86.c:83:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
#if _PIXMAN_X86_64 || defined (_MSC_VER) || defined(__native_client__)
^
pixman-0.34.0/pixman/pixman-x86.c:78:6: note: expanded from macro '_PIXMAN_X86_64'
(defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64))
^该项目使用CMake配置,参数很少,大部分配置都是在依赖项( CMake of The dependency,安东石)中进行的。
有一个几乎相同的源代码和库库的emscripten构建,运行良好,所以我想我在CMake配置中遗漏了一些东西来使它在macos上工作。
我认为目标体系结构与像素库(可能还有编译尚未达到的其他库)不兼容。但我没有找到解决办法。
我安装gcc是用自制的
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc-11
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc/11.3.0/bin/../libexec/gcc/aarch64-apple-darwin21/11/lto-wrapper
Target: aarch64-apple-darwin21
Configured with: ../configure --prefix=/opt/homebrew/opt/gcc --libdir=/opt/homebrew/opt/gcc/lib/gcc/11 --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-11 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 11.3.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --build=aarch64-apple-darwin21 --with-system-zlib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.0 (Homebrew GCC 11.3.0)发布于 2022-06-25 08:07:41
该项目使用CMake配置,参数很少,大部分配置都是在依赖项(Orthanc)的CMake中进行的。
是这 Orthanc吗?他们究竟是如何用CMake构建像素的呢?Pixman有很多在汇编程序中实现的特例。在构建时,autoconf检测到要启用的正确的一个。既然你写的是你正在使用的CMake,我敢打赌有人会避开所有的自动检测,只是硬编码要构建什么。并对x86构建进行硬编码。
如果这个猜测是正确的,那么这就是那个CMake文件中的一个bug,除了orthanc之外,没有任何人能对此做任何事情。
你到底想要建造安赛克的哪一部分?我找不到它对开罗的利用..。
https://stackoverflow.com/questions/72733024
复制相似问题