2010-03-06 2 views

Antwort

24

Einige Leute (einschließlich des CUDA SDK) verwenden .cuh für CUDA-Header-Dateien, und wenn Sie Gerätecode in die Kopfzeile einfügen, dann kann dies vielleicht helfen. Es gibt jedoch keine besondere Bedeutung für die Erweiterung der Header-Datei (anders als für die Quelldatei, wo bestimmt wird, welcher Compiler verwendet wird), also bleibe ich persönlich bei .h.

+0

Danke! In einigen Fällen habe ich einen Gerätecode in der Kopfzeile, und ich möchte dies in der Dateierweiterung deutlich machen, so dass Leute ihn nicht in Nicht-CUDA-Quelldateien einschließen, daher klingt .cuh wie die richtige Antwort dafür . (Dies ist auch eine Umgebung, die C++ - .hpp-Header von C-h unterscheidet, also gibt es einen lokalen Präzedenzfall.) Sonst, ja, .h macht Sinn. –

+1

Wenn Sie mit der Linux-Version von Eclipse arbeiten, ist es in der Tat sehr wichtig, welche Erweiterung die Include-Datei hat. Mit einer '.h' Erweiterung formatiert Eclipse den Inhalt nicht korrekt. Ich hatte dieses Problem fast 2 Jahre, bis ich erkannte, dass es aufgrund einer falschen Erweiterung sein kann. Durch das Ändern der Erweiterung auf '.cuh' wurde mein Problem gelöst und Eclipse formatiert nun endlich die Include-Datei. Up Herr Tom :-) –

4

Nein - verwenden Sie einfach .h für Header-Dateien. Die CUDA-Quelldateien haben ein anderes Suffix, um sicherzustellen, dass die verschiedenen Quelldateien in einem Build mit dem richtigen Compiler kompiliert werden (denke an Makefile-Regeln).

+6

Meiner Meinung nach ist es eine gute Angewohnheit, für Header, die CUDA-spezifischen Code haben, eine andere Erweiterung zu verwenden. Auf diese Weise können Sie verhindern, dass Personen versuchen, sie in normale C++ - Dateien einzufügen. – shinjin