首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc在macos上构建asm的错误

gcc在macos上构建asm的错误
EN

Stack Overflow用户
提问于 2022-06-23 15:44:45
回答 1查看 111关注 0票数 0

我过去常常在windows上构建一个项目,现在我试图在macos (M1)上构建它,我得到了依赖项(嵌套在依赖项中)上的错误:

代码语言:javascript
复制
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)
          ^

我周围也有警告:

代码语言:javascript
复制
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是用自制的

代码语言:javascript
复制
$ 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)
EN

回答 1

Stack Overflow用户

发布于 2022-06-25 08:07:41

该项目使用CMake配置,参数很少,大部分配置都是在依赖项(Orthanc)的CMake中进行的。

Orthanc吗?他们究竟是如何用CMake构建像素的呢?Pixman有很多在汇编程序中实现的特例。在构建时,autoconf检测到要启用的正确的一个。既然你写的是你正在使用的CMake,我敢打赌有人会避开所有的自动检测,只是硬编码要构建什么。并对x86构建进行硬编码。

如果这个猜测是正确的,那么这就是那个CMake文件中的一个bug,除了orthanc之外,没有任何人能对此做任何事情。

你到底想要建造安赛克的哪一部分?我找不到它对开罗的利用..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72733024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档