AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 495227
Accepted
Raven
Raven
Asked: 2019-01-19 00:04:11 +0800 CST2019-01-19 00:04:11 +0800 CST 2019-01-19 00:04:11 +0800 CST

C++ 在 64 位系统上构建 32 位二进制文​​件 [关闭]

  • 772
关闭。这个问题是题外话。它目前不接受答案。

描述无法重现且看似自行消失(或在修正错字后消失)的问题的问题是题外话,因为它们不太可能帮助未来的读者。

3年前关闭。

改进这个问题

所以我有一个项目,我希望能够将其构建为 64 位二进制文​​件和 32 位二进制文​​件。
我的机器本身是 64 位的,64 位的编译工作得很好。

我cake用来构建我的项目,我用它set_target_properties(clib PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")来强制构建 32 位。

每当我尝试构建它时,编译器都会抛出一个错误,因为我包含<iostream>在我的主程序中。起初它抱怨它找不到<bits/c++config.h>包含在里面的某个地方<iostream>。
我在网上找到了一些东西,这些东西让我安装g++-multilib在我的系统上。现在以前的错误消失了,但我得到的错误 /usr/include/linux/errno.h:1:10: fatal error: asm/errno.h: No such file or directory也起源于#include <iostream>.

我检查了这个文件在哪里,我在其中找到了它/usr/include/x86_64-linux-gnu/asm/errno.h(与以前一样,在 32 位版本中似乎没有搜索c++config.h该文件夹(这有点道理)。 我还发现它与珍贵的相同,但作为您可以看到它不在子文件夹中。 显然我可以手动将其移动到该文件夹​​中,但我觉得我的设置通常有问题。 x86_64
/usr/include/linux/errno.hasm

那么我还需要设置什么才能将我的代码(使用 a #include <iostream>)编译为 32 位可执行文件?有类似 32 位版本的标准库吗?

编辑:
我正在使用带有g++ --versionofg++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0和的 Linux Mint 18.3cmake v.3.10.2

c++ 32bit
  • 1 1 个回答
  • 846 Views

1 个回答

  • Voted
  1. Best Answer
    Raven
    2019-01-19T04:27:25+08:002019-01-19T04:27:25+08:00

    好吧,我发现了问题所在:
    当我发现时,我不得不使用g++-multilib我继续在我的包管理器中搜索它(synaptic在我的情况下)。那一个列出了一堆版本,所以我检查了g++我安装的版本,然后我安装了适当的g++-multilib-package,在我的情况下是g++-7-multilib.

    但是,它没有安装的是gcc-multilib在我的情况下似乎是麻烦制造者的软件包。安装后,它按预期工作。


    长话短说:如果我一开始就安装了g++-multilib(名称中没有版本)包,我就不会遇到这个问题。

    • 3

相关问题

  • 如何通过“gdb”C/C++ 代码逐行跟踪?[关闭]

  • /bin/sh 在 if 语句中没有找到命令时返回 0,这是预期的吗?

  • 为 Linux 制作下载和安装风格的程序

  • Meson 找不到 Boost 库

  • 在 C++ 代码中使用 system() 函数与使用源代码一样快速吗?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve