Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: mimars 12 Listopadu 2009, 16:02:30
-
Tak opět zdravím, tohle už je snad jeden z mých posledních dotazů na nějakou dobu:
Dělám si to takhle jednou program v SDL. Jde o to že se hýbe kuličkou po obrazovce, přičemž na kuličku působí gravitace.
Takto vypadá struktura:
headers/global.h
headers/main.h
headers/functions.h
sources/main.cpp
sources/functions.cpp
Závislosti jsou následující:
main.h:
#include <stdio.h>
#include <string.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
functions.h:
#include <stdio.h>
#include <string.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
global.h:
nemá - zde jsou uloženy globální hodnoty
main.cpp:
#include "../headers/main.h" // V souboru main.h není nic důležitého pro ostatní soubory - jen to co je uvedeno výše...
#include "../headers/functions.h"
#include "../headers/global.h"
functions.cpp:
#include "../headers/functions.h"
#include "../headers/global.h"
Všechno by fungovalo, ale je tu jeden problém - pořád mi to píše, že různé proměnné a podobně (hlavně z global.h), jsou duplikátní. Myslím si že je to tím, že se global hodnoty includují do dvou .cpp souborů, ale je to tak nutné (pro tento program). Nevíte někdo co s tím udělat? Předem děkuji za odpovědi.
PS.: Samozřejmě všechny (!!) soubory .h mají ošetřené vkládání pomocí #ifndef, #define a #endif...
-
Ještě sem přidám obsah configu:
Project ( SDL_CMAKE_DEMONSTRATION )
cmake_minimum_required(VERSION 2.6)
set (
SOURCES
sources/main.cpp
sources/functions.cpp
headers/main.h
headers/functions.h
headers/global.h
)
# REQUIRED does not work in CMake <=2.4.6 for SDL
Find_Package ( SDL REQUIRED )
Find_Package ( SDL_image REQUIRED ) # if using SDL_image
# Workaround for the non-working REQUIRED flag
if ( NOT SDL_FOUND )
message ( FATAL_ERROR "SDL not found!" )
endif ( NOT SDL_FOUND )
link_libraries (
${SDL_LIBRARY}
${SDLIMAGE_LIBRARY} # if using SDL_image, obviously
SDLmain # Sadly not included in SDL_LIBRARY variable
)
add_executable (
application
${SOURCES}
)