Troubleshooting helloworld.cu

When compiling this hello world example in Ubuntu 10.10

This is from CUDA as an example , chapter 3 (No compilation instructions>: @)

#include <iostream> __global__ void kernel (void){ } int main(void){ kernel <<<1,1>>>(); printf("Hellow World!\n"); return 0; } 

I got it:

$ nvcc -lcudart hello.cu hello.cu (11): error: identifier "printf" undefined

1 error found in compilation "/tmp/tmpxft_00007812_00000000-4_hello.cpp1.ii".

Why? How to compile this code?

+6
source share
1 answer

You need to enable stdio.h not iostream (which is for std::cout stuff) for printf (see man 3 printf ). I found the source code for the book here .

chapter03/hello_world.cu actually:

 /* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. * * NVIDIA Corporation and its licensors retain all intellectual property and * proprietary rights in and to this software and related documentation. * Any use, reproduction, disclosure, or distribution of this software * and related documentation without an express license agreement from * NVIDIA Corporation is strictly prohibited. * * Please refer to the applicable NVIDIA end user license agreement (EULA) * associated with this source code for terms and conditions that govern * your use of this NVIDIA software. * */ #include "../common/book.h" int main( void ) { printf( "Hello, World!\n" ); return 0; }
/* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. * * NVIDIA Corporation and its licensors retain all intellectual property and * proprietary rights in and to this software and related documentation. * Any use, reproduction, disclosure, or distribution of this software * and related documentation without an express license agreement from * NVIDIA Corporation is strictly prohibited. * * Please refer to the applicable NVIDIA end user license agreement (EULA) * associated with this source code for terms and conditions that govern * your use of this NVIDIA software. * */ #include "../common/book.h" int main( void ) { printf( "Hello, World!\n" ); return 0; } 

Where ../common/book.h includes stdio.h .

The README.txt shows how to compile the examples:

 The vast majority of these code examples can be compiled quite easily by using 
 NVIDIA CUDA compiler driver, nvcc.  To compile a typical example, say 
 "example.cu," you will simply need to execute:

 > nvcc example.cu
+10
source

Source: https://habr.com/ru/post/896597/


All Articles