arunabha

Problem compilling Hello World from the commandline

Discussion created by arunabha on May 26, 2011
Latest reply on May 27, 2011 by himanshu.gautam

Hi,

    I'm trying to compile a simple HelloWorld app using the intro tutorial at http://developer.amd.com/sdks/AMDAPPSDK/documentation/pages/TutorialOpenCL.aspx

I also read http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=128133 which discusses some of the same issues.

The problem I'm getting is that the linker is unable to find a reference. I'm attaching the code and the build command is given below.

 

cl /Fehello_world.exe /EHsc /I"c:\Program Files (x86)\AMD APP\include" hello.cpp "c:\Program Files (x86)\AMD APP\lib\x86_64\OpenCL.lib"

 

The Error I'm getting is 

 

 

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86

Copyright (C) Microsoft Corporation.  All rights reserved.

 

hello.cpp

Microsoft (R) Incremental Linker Version 10.00.30319.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

/out:hello_world.exe

hello.obj

"c:\Program Files (x86)\AMD APP\lib\x86_64\OpenCL.lib"

hello.obj : error LNK2019: unresolved external symbol _clGetPlatformIDs@12 referenced in function "public: static int __cdecl cl:latform::get(class cl::vector

<class cl:latform,10> *)" (?get@Platform@cl@@SAHPAV?$vector@VPlatform@cl@@$09@2@@Z)

hello_world.exe : fatal error LNK1120: 1 unresolved externals

Any help is appreciated


 

 

 

#include <utility> #define __NO_STD_VECTOR // Use cl::vector and cl::string and #define __NO_STD_STRING // not STL versions, more on this later #include <CL/cl.hpp> #include <cstdio> #include <cstdlib> #include <fstream> #include <iostream> #include <string> #include <iterator> const std::string hw("Hello World\n"); inline void checkErr(cl_int err, const char * name) { if (err != CL_SUCCESS) { std::cerr << "ERROR: " << name << " (" << err << ")" << std::endl; exit(EXIT_FAILURE); } } int main(void) { cl_int err; cl::vector< cl::Platform > platformList; cl::Platform::get(&platformList); checkErr(platformList.size()!=0 ? CL_SUCCESS : -1, "cl::Platform::get"); std::cerr << "Platform number is: " << platformList.size() << std::endl; return 0; }

Outcomes