2017-01-24 88 views
-2

我正在嘗試使用c在cuda中執行加密解密。我下載了代碼,但同時構建解決方案。它給出預期的錯誤';'我評論爲// HERE代碼中的錯誤。我嘗試過,但無法找到解決方案。我下載的代碼看起來像。預期錯誤';'同時在cuda中構建解決方案c

uint32_t sw(uint32_t word) 
{ 
    union { 
     uint32_t word; 
     uint8_t bytes[4]; 
    } subWord __attribute__ ((aligned));//HERE 
    subWord.word = word; 

    subWord.bytes[3] = s_h[subWord.bytes[3]]; 
    subWord.bytes[2] = s_h[subWord.bytes[2]]; 
    subWord.bytes[1] = s_h[subWord.bytes[1]]; 
    subWord.bytes[0] = s_h[subWord.bytes[0]]; 

    return subWord.word; 
} 

和錯誤就像

C:/Users/pcw/Documents/Visual Studio 2012/Projects/MyCudaApp  /MyCudaApp/TEST AES.cu(157): error : expected a ";" 
    1>C:/Users/pcw/Documents/Visual Studio 2012/Projects/MyCudaApp/MyCudaApp/TEST AES.cu(175): error : expected a ";" 
    1>C:/Users/pcw/Documents/Visual Studio 2012/Projects/MyCudaApp/MyCudaApp/TEST AES.cu(179): error : expected a ";" 
    1>C:/Users/pcw/Documents/Visual Studio 2012/Projects/MyCudaApp/MyCudaApp/TEST AES.cu(218): error : expected a ";" 
+1

刪除'#include ',將文件重命名爲具有'.cu'擴展名,並使用'nvcc'重新編譯。 – tera

+2

CUDA中的'__align __(16)'(或其他任何對齊方式)。 – tera

+3

如果你在聯合中有語法錯誤,你爲什麼覺得有必要發佈400行代碼? – talonmies

回答

1

您試圖編譯代碼包含gcc specific variable attributes,這不是由微軟C++編譯器支持。

要編譯這個,你將需要用Visual Studio理解的東西替換__attribute__。你可以看到這個問題的討論here