suchen
HeimComputer-TutorialsComputerwissenWie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?

相信很多C程序员都有过这样的疑问,如果一台服务器有不同的gcc版本怎么办,它们之间会相互影响吗?

答案是会的,我们一般使用gcc编译源文件时,这个gcc是系统环境变量PATH中最开始找到的gcc。

如果要交叉编译不同系统的程序呢?这就需要多套的编译工具链了,分别使用对应的工具链编译目标系统的程序。

默认路径

  • 编译器路径:通常放置在 /usr/bin 目录下。
  • 头文件路径:系统级别的头文件通常放在 /usr/include 中,标准库的头文件一般在 /usr/local/include
  • 库路径:系统动态库往往位于 /usr/lib 和 /lib,静态库通常也会放在这里或者 /usr/local/lib

手动设置路径

编译器路径

更改编译器路径的环境变量通常不是必要的,因为 /usr/bin 应该已经在你的 PATH 环境变量中了。如果你需要使用不同的编译器,你可以直接使用其完整路径或者修改 PATH 环境变量来指向你的编译器,例如:

export PATH=/path/to/your/compiler:$PATH

这样会在现有的 PATH 前添加你指定的路径,使系统首先在此处寻找可执行文件。

设置交叉编译器

我需要在Ubuntu上编译ARM架构的程序,使用Marvell提供的工具链。这个工具链包含了用于交叉编译ARM架构程序的gcc和其他工具,它们都具有相同的前缀。

arm编译:这样设置前缀后就可以使用交叉编译器
export CROSS_COMPILE=/home/zheng/marvell-tools-12006.0/bin/aarch64-marvell-linux-gnu-

使用环境变量进行编译:

${CROSS_COMPILE}gcc-o hello_arm hello_arm.c

Wie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?

Wie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?查看可执行程序系统架构

然后分别执行一下这两个程序:

Wie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?

当前系统的架构:uname -m

Wie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?

一般情况下gcc是会按照系统默认的PATH路径去查找编译时需要的相应的工具组件

所以如果要编译不同架构的程序,就需要有多套的工具链,如果都把这些工具链的路径加到系统的环境变量PATH中则会产生冲突,会优先使用前面路径中的同名工具,比如PATH设置为:

export PATH=/path/arm_toolchain/bin:/usr/bin:/path/x86_toolchain/bin

/path/arm_toolchain/bin和/usr/bin,/path/x86_toolchain/bin都有名称为gcc的工具,那么前面的就会覆盖后面的,每次执行都会优先使用最早匹配到的gcc工具

缺点:无法动态指定不同架构的编译工具链,需要频繁修改PATH环境变量。

改进方法:给每个工具链指定相应的环境变量,这样就可以动态区分不同的编译器。

这种办法适合临时切换工具链,编译不同架构的程序,如果是大型C程序一般是通过配置文件中指定了编译器的路径,然后使用make,或者meson等构建工具进行构建。

Das obige ist der detaillierte Inhalt vonWie kompiliere ich ausführbare Programme verschiedener Systeme auf einem Ubuntu-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:每日运维. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie entfernen Sie den SecureBooteCodeuefi.exe Trojaner?Wie entfernen Sie den SecureBooteCodeuefi.exe Trojaner?Apr 13, 2025 am 12:50 AM

Einige Windows 11/10 -Benutzer geben an, dass ein CMD -Fenster direkt nach einem Bitdefender -Update geöffnet ist und SecureBooteCodeuefi.exe ausgeführt wird. In diesem Beitrag von php.cn werden die SecurebootenCodeuefi.exe Trojan entfernen.

Fix: sysdll_win64_retail.dll fehlen oder nicht gefundener Fehler - MinitoolFix: sysdll_win64_retail.dll fehlen oder nicht gefundener Fehler - MinitoolApr 13, 2025 am 12:48 AM

Sysdll_win64_retail.dll ist eine DLL -Datei (Dynamic Link Library), die sich auf die FIFA 17 -Anwendung bezieht. Wenn diese Datei verpasst oder beschädigt wird, werden eine Reihe von Problemen und Fehlern in dieser Anwendung auftreten. Um dieses Problem zu lösen, können Sie diesen Artic lesen

Wird die Kernisolierung durch ew_usbccgpfilter.sys blockiert? Hier sind Korrekturen!Wird die Kernisolierung durch ew_usbccgpfilter.sys blockiert? Hier sind Korrekturen!Apr 13, 2025 am 12:47 AM

Viele SurfaceBook -Benutzer berichten, dass sie unter Windows 11/10 das Problem der „Kernisolation blockiert von EW_USBCCGPFILTER.SYS“ erfüllen. Dieser Beitrag von php.cn hilft bei der Behebung des nervigen Problems. Lesen Sie Ihre Lektüre.

Wie entferne ich Optionen aus dem Bildschirm Ctrl Alt Del?Wie entferne ich Optionen aus dem Bildschirm Ctrl Alt Del?Apr 13, 2025 am 12:46 AM

Wenn Sie auf Ihrem Computer Strg Alt Del drücken, geben Sie das Fenster für Sicherheitsoptionen ein, in dem Sie möglicherweise Sperren sehen, Benutzer wechseln und Optionen abmelden. Wissen Sie, dass diese Optionen geändert werden können? In diesem pHP.CN -Beitrag werden Ihnen angezeigt, wie Sie OPT entfernen können

Wie entfernt ich Virus: Win32/Grenam.va! MSR? Hier ist ein Leitfaden!Wie entfernt ich Virus: Win32/Grenam.va! MSR? Hier ist ein Leitfaden!Apr 13, 2025 am 12:45 AM

Einige Benutzer von Windows 11/10 berichten, dass ihr Windows -Verteidiger einen Virus namens Virus entdeckt hat: Win32/Grenam.va! MSR. Aber sie wissen nicht, wie sie es entfernen sollen. In diesem Beitrag von Php.cn wird Ihnen das Entfernen von Viren: Win32/Grenam.va! MSR gelehrt.

Wie speichere ich eine Website als Desktop -App?Wie speichere ich eine Website als Desktop -App?Apr 13, 2025 am 12:44 AM

Wenn Sie häufig eine Website besuchen müssen, ist es ziemlich problematisch, einen Browser zu öffnen und jedes Mal danach zu suchen. Warum versuchen Sie nicht, eine Website als App zu speichern? Wenn Sie dies tun, können Sie es als normale Software öffnen. Hier bietet Php.cn Ihnen einige Gebrauchsfuken

Eine vollständige Anleitung zur Behebung des Windows -Update -Fehlers 0x00000000Eine vollständige Anleitung zur Behebung des Windows -Update -Fehlers 0x00000000Apr 13, 2025 am 12:43 AM

Einige Leute haben den Fehlercode 0x00000000 unter Windows 11 begegnet, als sie das neueste Windows -Update installiert haben. Was sollten Sie tun, um mit diesem unerwarteten Fehler fertig zu werden? Dieser Artikel auf der Website von PHP.CN gibt Ihnen einige Hinweise zur Fehlerbehebung.

So beheben Sie Filetype, die nicht von dieser App unterstützt werden, nicht unterstütztSo beheben Sie Filetype, die nicht von dieser App unterstützt werden, nicht unterstütztApr 13, 2025 am 12:41 AM

Leiden Sie unter der Fehlermeldung "Filetype, die nicht von dieser App unterstützt wird" beim Öffnen von Dateien in Teams oder Excel? Lesen Sie nun diesen Beitrag von php.cn, um mehrere nützliche Lösungen für dieses Problem zu erhalten.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools