該程序可以在Windows上成功構建 - Visual Studio 12,但在Linux上編譯時遇到了一些問題。Linux上的CUDA編譯錯誤,但Windows Visual Studio成功
編譯命令:nvcc main.cu
int main(int argc, char **argv) {
... (Skip some code)
// Read file.
MemoryBuffer<char> text(size + 1); // size type is size_t
auto text_smem = text.CreateSync(size);
fread(text_smem.get_cpu_wo(), 1, size, fp);
... (Skip some code)
}
編譯錯誤消息:
auto text_smem = text.CreateSync(size);
發生約
error: explicit type is missing ("int" assumed)
和error: no suitable conversion function from "SyncedMemory<char>" to "int" exists
fread(text_smem.get_cpu_wo(), 1, size, fp);
發生約
error: expression must have class type
如何在Linux操作系統解決了編譯器錯誤?
MemoryBuffer是一個類,詳細代碼可以從here看到。