Sie können Wein nicht verlinken, da es sich im Wesentlichen um einen Anrufunterbrecher/Übersetzer handelt und nicht um eine Reihe von Bibliotheken, in die Sie sich einklinken können. Wenn Linux wichtig ist, gehen Sie zu OpenGL/SDL/OpenAL.
Ich glaube (ich habe das noch nie versucht), dass Sie Linux-Binärdateien gegen winelib kompilieren können. Es funktioniert also genau wie eine ausführbare Linux-Datei, aber mit den Windows-Bibliotheken.
http://www.winehq.org/site/docs/winelib-guide/index
Damit habe ich etwas Glück. Ich habe es geschafft, dieses einfache Direct3D-Beispiel zu kompilieren.
Ich habe dafür winelib verwendet (wine-dev-Paket auf Ubuntu). Danke an alastair für den Hinweis auf winelib.
Ich habe die Quelle leicht modifiziert, um die wchars in chars umzuwandeln (1 in Zeile 52, 2 in Zeile 55, indem ich das L vor den String-Literalen entfernt habe). Es mag einen Weg geben, dies zu umgehen, aber das hat es zum Laufen gebracht.
Ich habe dann den Quellcode wie folgt kompiliert:
wineg++ -ld3d9 -ld3dx9 triangle.cpp
Dies generiert eine a.out.exe.so-Binärdatei sowie ein a.out-Skript, um es unter wine auszuführen.
Wenn es nicht um das Portieren, sondern um das Erstellen geht, sollten Sie OpenGL in Betracht ziehen, da diese API so leistungsfähig wie DirectX und viel einfacher auf Mac oder Linux zu portieren ist.
Ich kenne Ihre Anforderungen nicht, also erwähnen Sie es besser.