Skip navigation

OpenCL program fordítása FreeImage könyvtárral

Célok

Ebben a fejezetben bemutatjuk a MS Visual Studio beállításait a FreeImage könvtár használatához. Valamint megmutatjuk, hogy hogyan lehet CMake állománnyal előállítani a megfelelő fordítási állományokat különböző rendszereken.

A következőkben feltételezzük, hogy a FreeImage függvénykönyvtár a

 c:\OpenCL\FreeImage 

alkönyvtárban található. Attól függően, hogy 32 bites vagy 64 bites programot fordítunk a megfelelő disztribúiót kell használnanunk, amelyek jelen esetben a FreeImage gyökerében lévő

 Dist\x32 vagy Dist\X64 

alkönytárakban helyezkednek el. Arról se feledkezzünk meg, hogy a program futásához szükséges dll állománynak az útvonalon elérhetőnek kell lennie.

A példánkban a 32 bites program beállítását mutatjuk be.

Fordítás MS Visual Studióval

Az üres OpenCL projekt létrehozása után a projekten a jobb egér gom segítségével válasszuk ki a projekt <Properties> menűpontot.

Projekt tulajdonságok kiválasztása

Ezután a C/C++ szekcióban az <Additional Include Directories> sorban állítsuk be az FreeImage include állomány útvonalát.

FreeImage include állomány útvonalának beállítása

Majd pedig a Linker szekcióban <Additional Library Directories> sorban a lib állomány útvonalát.

A lib állomány útvonalának a beállítása

Feladat

Készítsen egy MS Visual Studió projektet, amely egy OpenCL programot fordít le úgy, hogy hozzászerkeszti a FreeImage függvény könyvtárat! Ezután a negyedik lecke első példáját fordítsa le MS Visual Studióval.

Fordítás CMake segítségével

Ahogy azt korábban említettük, a CMake seígtségével nagyon könnyen elő tudjuk állítani a fordításhoz szükséges állományokat különböző platformokon. Természetesen ezt csak abban az eseteben tudjuk megtenni, ha a forrás állományokban nem használtunk semmilyen operációs rendszer specifikus függvénykönyvtárat.

A következőkben egy egyszerű CMake állományt adunk meg ahhoz, hogy a FreeImage függvénykönyvtárat hozzászerkesszük az OpenCL-es projektünk-höz

    cmake_minimum_required (VERSION 3.1)
	
    project(helloImage)

    find_package(OpenCL REQUIRED)
	
    include_directories(${OpenCL_INCLUDE_DIRS} c:/OpenCl/FreeImage/Dist/x32)
    link_directories(${OpenCL_LIBRARY} c:/OpenCl/FreeImage/Dist/x32)
	
    add_executable (helloImage device.cl helloImage.cpp)
	
    configure_file(device.cl ${RUNTIME_OUTPUT_DIRECTORY} device.cl)    
	
    target_include_directories (helloImage PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    target_link_libraries (helloImage FreeImage.lib ${OpenCL_LIBRARY} )

CMake állomány letöltése itt.

A fordításhoz szükséges állományok előállítása az első leckében megadott lépésekhez hasonlóan kell elvégezni.

Feladat

Fordítsuk le a lecke első példáját a CMake állománnyal előállított projekt állomány segítségével!