在windows下编译linux gcc - windows下的nvcc

2024-01-29

这是一个有趣的问题,如果得到肯定的回答,将使交叉编译变得更加容易。

由于gcc是用C++编写的,是否可以在Windows MinGW G++或VSC++编译器上重新编译Linux gcc编译器,以便生成的Windows可执行文件能够将c代码编译为linux程序?

如果是这样,需要做什么?

为了简单起见,这就是我想做的。

mingw32-g++ gcc.cpp -o gcc.exe

该命令可能不起作用,因为如果那么简单的话,以前可能已经完成了。我想问的是这个概念是否可行。

编辑:感谢并将问题扩展到 NVCC

fvu 能够回答 gcc 编译器的问题(下次请使用回答按钮),所以如果你有同样的问题,你可以感谢他(或她)。

作为问题的扩展,是否可以编辑或重新编译 nvcc 或其使用的内容,以便 nvcc.exe 可以从 CUDA C 代码创建 Linux 程序?我读到 nvcc 的 Windows 变体只能使用 Visual Studio cl.exe,而不能使用 MinGW 或 CygWin。

是否可以使用 cl.exe 创建 Linux 程序?如果是这样,是否可以使用 nvcc.exe 生成 linux 程序?


阅读gcc手册中有关交叉编译的章节,gcc的架构使得在目标与开发机器不同的情况下设置工具链变得非常容易。

我从来没有走过你描述的确切路线,但我已经在 Windows 下构建了针对 ARM9 嵌入式 Linux 机器的工具链,工作起来就像一个魅力 - 顺便说一句,使用 cygwin。看here http://wiki.osdev.org/GCC_Cross-Compiler进行温和的介绍。也是非常有用的信息here http://gcc.gnu.org/wiki/Building_Cross_Toolchains_with_gcc.

我不会评论关于 nvcc 可以做什么,CUDA 在我的(长)列表中的某个地方可以修改......

现在,cl 可以生成 Linux 二进制文件吗?这个问题的答案是“某种程度上”:只要目标处理器来自 cl 支持的处理器系列,它生成的目标文件就可能不包含任何会抑制其在 Linux 上执行的内容,因为它们会仅包含机器代码。这就是理论。然而:

  • 由于 Linux 使用另一种可执行格式,您将需要一个 Windows 托管的链接器来理解 Windows 样式目标文件(afaik,COFF),并将它们链接到 Linux 样式(ELF)可执行文件。我从未听说过这样的野兽,尽管理论上它可能存在
  • 启动代码(一个围绕主函数的小程序)也会有所不同,需要编写
  • 还有更多,例如与图书馆相关的问题

So, the 实际的答案是否定的,尽管对于无聊的学生来说这可能是一个不错的暑期项目:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在windows下编译linux gcc - windows下的nvcc 的相关文章

  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • Boost + Visual Studio 2010 + Windows 平台 SDK 7.1

    有人可以告诉我 bjam 的命令行开关或其他可以使用新的 Windows Platform SDK 7 1 工具链使用 VS2010 进行 boost 编译的东西吗 您可以在普通的视觉工作室项目中设置该选项 默认值是 v100 是平台 7
  • 我收到此警告: com.sun.org.apache.xml.internal.serialize.OutputFormat 是 Sun 专有 API,可能会在未来版本中删除

    我的代码是 OutputFormat wOf new OutputFormat XML ISO 8859 1 true 帮我解决这个警告 提前致谢 一种解决方案是不使用该类 另一种解决方案是忽略该警告 看看这个类 我怀疑这是唯一可行的解 决
  • Windows 睡眠功能极慢

    我正在通过 Windows h 使用 Sleep 命令制作一个程序 并且在 Windows 10 而不是 Windows 7 上运行我的程序时遇到了令人沮丧的差异 我将我的程序简化为下面的程序 它与我的更复杂的程序表现出相同的行为 在 Wi
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • C99 中数组的静态大小[重复]

    这个问题在这里已经有答案了 一个非常简单的 C 程序 include
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 哪个版本的 Miniconda 具有适用于 Windows 64 位的 Python 3.6?

    我正在开发一个需要这些深度学习库的项目 keras 和 tensorflow 不幸的是 这些不适用于 Python 3 7 有人可以告诉我一个带有 Python 3 6 的 Miniconda 版本 适用于 Windows 64 位 吗 我
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • Flash Builder 条件编译变量

    我正在使用 Flash Builder 4 5 并且我想在调试和发布版本之间使用条件编译 我了解如何使用条件编译以及如何定义编译器常量 我需要的是 IDE 在调试和发布版本之间设置的预定义常量 一种在调试和发布版本之间为编译器指定不同参数的
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 为什么是 ”\?” C/C++ 中的转义序列?

    C C 中有四种特殊的非字母字符需要转义 单引号 双引号 反斜杠 和问号 显然是因为它们有特殊的含义 对于单身char 对于字符串文字 对于转义序列 但为什么是 其中之一 我今天读了教科书上的转义序列表 我意识到我已经never逃脱了 以前
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数

随机推荐