<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Shared_Libraries_.so_Erstellen_mit_Rust</id>
	<title>Shared Libraries .so Erstellen mit Rust - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Shared_Libraries_.so_Erstellen_mit_Rust"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Shared_Libraries_.so_Erstellen_mit_Rust&amp;action=history"/>
	<updated>2026-08-19T19:08:02Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Shared_Libraries_.so_Erstellen_mit_Rust&amp;diff=2292&amp;oldid=prev</id>
		<title>Thorsten: // via Wikitext Extension for VSCode</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Shared_Libraries_.so_Erstellen_mit_Rust&amp;diff=2292&amp;oldid=prev"/>
		<updated>2025-01-07T04:17:53Z</updated>

		<summary type="html">&lt;p&gt;// via Wikitext Extension for VSCode&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&lt;br /&gt;
&lt;br /&gt;
==Shared Libraries .so Erstellen mit Rust==&lt;br /&gt;
===Warum mit Rust===&lt;br /&gt;
Rust ist eine moderne Programmiersprache, die die Sicherheit von C und C++ mit der Produktivität von Sprachen wie Python und Ruby kombiniert. Rust ist eine gute Wahl für die Erstellung von Shared Libraries, da es eine gute Unterstützung für die Erstellung von Shared Libraries bietet. &lt;br /&gt;
&lt;br /&gt;
===Erstellen einer Shared Library mit Rust===&lt;br /&gt;
Um eine Shared Library mit Rust zu erstellen, müssen Sie die folgenden Schritte ausführen:&lt;br /&gt;
&lt;br /&gt;
# Erstellen Sie ein neues Rust-Projekt mit `cargo new start --lib`.&lt;br /&gt;
# Fügen Sie die folgenden Zeilen zur `Cargo.toml`-Datei hinzu: &lt;br /&gt;
&amp;lt;pre&amp;gt;[lib]&lt;br /&gt;
name = &amp;quot;my_rust_lib&amp;quot;&lt;br /&gt;
crate-type = [&amp;quot;cdylib&amp;quot;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Erstellen Sie eine neue Datei `src/lib.rs` und fügen Sie den folgenden Code hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;#[no_mangle]&lt;br /&gt;
pub extern &amp;quot;C&amp;quot; fn add(a: i32, b: i32) -&amp;gt; i32 {&lt;br /&gt;
    a + b&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Führen Sie `cargo build` aus, um die Shared Library zu erstellen. Die Shared Library wird im `target/debug`-Verzeichnis erstellt.&lt;br /&gt;
&lt;br /&gt;
===Verwenden der Shared Library in C===&lt;br /&gt;
Um die erstellte Shared Library in C zu verwenden, müssen Sie die folgenden Schritte ausführen:&lt;br /&gt;
&lt;br /&gt;
# Erstellen Sie eine neue Datei `main.c` und fügen Sie den folgenden Code hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;my_rust_lib.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int result = add(1, 2);&lt;br /&gt;
    printf(&amp;quot;Result: %d\n&amp;quot;, result);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Header-Datei generieren==&lt;br /&gt;
===cbindgen===&lt;br /&gt;
cbindgen ist ein Tool, das automatisch C-Header-Dateien aus Rust-Code generiert. Sie können cbindgen verwenden, um den C-Header für Ihre Rust-Shared-Library zu generieren.&lt;br /&gt;
====cbindgen Installation====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cargo install cbindgen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Erstellt eine cbindgen.toml-Datei===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
language = &amp;quot;C&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Erstellt eine Header-Datei===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cbindgen --config cbindgen.toml --crate thorsten --output thorsten.h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&lt;/div&gt;</summary>
		<author><name>Thorsten</name></author>
	</entry>
</feed>