I really don't know how to generate a makefile from a Codeblocks project so it can be executed in other SOs. Like programming in Arch Linux and running this code in Ubuntu. That's my particular case.
I've been searching and I found this http://irrlicht.sourceforge.net/forum/v ... ke#p256038 and the comment of bitplane is not very clear for me. Besides, there's irrBuild http://sourceforge.net/projects/irrbuild/ but I'm afraid to say that I don't know how it can help me.
Generate a make file from a Codeblocks project
Re: Generate a make file from a Codeblocks project
I'm getting some success with cmake but I'm having some problems
This is my folder
These are my CMakeLists files. First the one in the project folder
And this in the bin folder
When I run cmake I get this warning
WARNING: Target "Project" requests linking to directory "/usr/include". Targets may link only to libraries. CMake is dropping the item.
and when I run make I get a bunch of errors like these
...
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:241: undefined reference to `glXGetProcAddressARB'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:468: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:472: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:477: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:484: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:488: undefined reference to `glGetIntegerv'
../../Irrlicht/lib/Linux/libIrrlicht.a(COpenGLExtensionHandler.o):/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:493: more undefined references to `glGetIntegerv' follow
../../Irrlicht/lib/Linux/libIrrlicht.a(COpenGLExtensionHandler.o): In function `irr::video::COpenGLExtensionHandler::initExtensions(bool)':
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:502: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:504: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:506: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:511: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:521: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:522: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:523: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:524: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:528: undefined reference to `glGetError'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:530: undefined reference to `glGetString'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:534: undefined reference to `glGetError'
...
This "libraries" folder doesn't even exist.
I used these tutorials
http://www.cs.swarthmore.edu/~adanner/tips/cmake.php
http://irrlicht.sourceforge.net/forum/v ... hp?t=37091
This is my folder
Code: Select all
Project
-CMakeLists.txt
-main.cpp
-Irrlicht
-include
-source
-bin/Linux
-bin
-CMakeLists.txt
-actual binary file
Code: Select all
cmake_minimum_required(VERSION 2.6)
project(PROJECTUNO)
#There are lots of scripts with cmake
#for finding external libraries.
#see /usr/local/share/cmake-2.6/Modules/Find*.cmake for more examples
find_package(OpenGL)
find_package(X11)
find_package(ZLIB)
set(CMAKE_CXX_FLAGS "-g -Wall")
add_subdirectory(bin)
Code: Select all
include_directories(
${PROJECT_SOURCE_DIR}/Irrlicht/include
${PROJECT_SOURCE_DIR}/bin
${X11_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
${OPENGL_INCLUDE_DIR}
)
link_directories(${PROJECT_BINARY_DIR}/Project)
add_executable(Project main.cpp
)
target_link_libraries(Project
${X11_LIBRARIES}
${GLUT_LIBRARIES}
${ZLIB_LIBRARIES}
${OPENGL_INCLUDE_DIR}
${PROJECT_SOURCE_DIR}/Irrlicht/lib/Linux/libIrrlicht.a
)
WARNING: Target "Project" requests linking to directory "/usr/include". Targets may link only to libraries. CMake is dropping the item.
and when I run make I get a bunch of errors like these
...
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:241: undefined reference to `glXGetProcAddressARB'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:468: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:472: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:477: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:484: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:488: undefined reference to `glGetIntegerv'
../../Irrlicht/lib/Linux/libIrrlicht.a(COpenGLExtensionHandler.o):/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:493: more undefined references to `glGetIntegerv' follow
../../Irrlicht/lib/Linux/libIrrlicht.a(COpenGLExtensionHandler.o): In function `irr::video::COpenGLExtensionHandler::initExtensions(bool)':
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:502: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:504: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:506: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:511: undefined reference to `glGetIntegerv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:521: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:522: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:523: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:524: undefined reference to `glGetFloatv'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:528: undefined reference to `glGetError'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:530: undefined reference to `glGetString'
/home/ragnarch/libraries/irrlicht-1.7.2/source/Irrlicht/COpenGLExtensionHandler.cpp:534: undefined reference to `glGetError'
...
This "libraries" folder doesn't even exist.
I used these tutorials
http://www.cs.swarthmore.edu/~adanner/tips/cmake.php
http://irrlicht.sourceforge.net/forum/v ... hp?t=37091
Last edited by ragnatic on Sun Feb 26, 2012 4:14 am, edited 1 time in total.
Re: Generate a make file from a Codeblocks project
The errors are because you don't link opengl, that's -lGL. By the way Irrlicht comes also with a Makefile - and additionally you could probably get CodeBlocks running in ArchLinux I guess (although I never tried that one).
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Re: Generate a make file from a Codeblocks project
CuteAlien wrote:and additionally you could probably get CodeBlocks running in ArchLinux I guess (although I never tried that one).
Thats it.pacman -S codeblocks
Re: Generate a make file from a Codeblocks project
I'm trying to generate a make file from a Codeblocks project that uses Irrlicht. I'm trying to generate a static library which is done, as in IrrCompileConfig saysCuteAlien wrote:The errors are because you don't link opengl, that's -lGL. By the way Irrlicht comes also with a Makefile - and additionally you could probably get CodeBlocks running in ArchLinux I guess (although I never tried that one).
// To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the
// Irrlicht build, *and* in the user application, before #including <irrlicht.h>
I have a #define _IRR_STATIC_LIB_ before #include <irrlicht.h> in my main but I'm not quite sure where is this "Irrlicht build" place.
Edit: Well, I saw a static build option in irrlicht codeblocks project located in the source folder. That build has the _IRR_STATIC_LIB_ flag and it seems that I'm all set. But now I get this when I'm compiling my project after getting the make file with cmake
undefined reference to `createDevice'|
Re: Generate a make file from a Codeblocks project
Do you link to Irrlicht?
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm