Crystal Space
Welcome, Guest. Please login or register.
October 21, 2014, 07:05:18 am

Login with username, password and session length
Search:     Advanced search
9010 Posts in 2044 Topics by 8768 Members
Latest Member: Alwynmunch
* Home Help Search Login Register
+  Crystal Space
|-+  Crystal Space Project Development
| |-+  Development Discussion
| | |-+  [resolved] Compilation error with Jam and Makefile
« previous next »
Pages: [1] Print
Author Topic: [resolved] Compilation error with Jam and Makefile  (Read 4970 times)
Protos
Newbie
*
Posts: 1


View Profile Email
« on: July 24, 2006, 04:29:16 pm »

Hi,
I've got a problem : my program doesn't compile. I've use both technics of the doc, but with the createproject.sh script, after the creation of the project "my_project", when I do "jam" after a configuration, it say :
Code:
...failed C++ ./out/linuxx86/optimize/src/my_project.o...
...skipped my_project for lack of <src!>my_project.o...
...failed updating 1 target...
...skipped 1 target...
So, I've try with the Makefile, I've copy Makefile template, then edit it. When I do "make" it say something like (I translate from french) : "make: *** No rules to create the "main.o" target, necessary for "my_project". Stop."
The Makefile looks like that :
Code:
VERSION = 1.0
RELEASE_DATE = 01-Jan-2005
SRCDIR = ./src

TARGET_TYPE = exe
#TARGET_TYPE = plugin

TARGET_NAME = my_project

ifeq ($(TARGET_TYPE),exe)
  TARGET=$(TARGET_NAME)$(EXE)
else
  TARGET=$(TARGET_NAME)$(DLL)
endif

#------
# Location of sources and object files
#------
SRC=main.cpp
OBJS=$(addsuffix .o, $(basename $(SRC)))
OUT=.

#------
# Tools to use
#------
CXX=g++
LINK=$(CXX)
RM=rm -rf

#------
# Abstractions
#------
LFLAGS.L = -L
LFLAGS.l = -l
CFLAGS.D = -D
CFLAGS.I = -I

#------
# Flags for compiler and linker.
# Make sure to update the required libraries for your own project
#------
CFLAGS := $(shell cs-config --cflags)
CXXFLAGS := $(shell cs-config --cxxflags)
LINKFLAGS := $(shell cs-config --libs crystalspace)

DO.SHARED.PLUGIN.CORE=$(LINK) $(LFLAGS.DLL) -o $@ $^ $(PLUGIN.POSTFLAGS)
DO.PLUGIN = \
  $(DO.SHARED.PLUGIN.PREAMBLE) \
  $(DO.SHARED.PLUGIN.CORE) $(LINKFLAGS) \
  $(DO.SHARED.PLUGIN.POSTAMBLE)
DO.EXE = $(LINK) -o $@ $^ $(LFLAGS.EXE) $(LINKFLAGS) $(LIBS.EXE.PLATFORM)

ifeq ($(TARGET_TYPE),exe)
  DO.TARGET = $(DO.EXE)
else
  DO.TARGET = $(DO.PLUGIN)
endif

CSCONFIG.MAK=csconfig.mak
-include $(CSCONFIG.MAK)

#------
# Rules
#------
.PHONY: all depend clean
.SUFFIXES: .cpp

.cpp.o: $<
$(CXX) $(CXXFLAGS) -o $@ -c $<

all: $(CSCONFIG.MAK) $(TARGET)

$(TARGET): $(OBJS)
$(DO.TARGET)

clean:
$(RM) $(TARGET) $(TARGET).app $(OBJS) $(CSCONFIG.MAK) \
makefile.dep *.def

#------
# Create dependencies
#------
depend: $(CSCONFIG.MAK)
gcc -MM $(CXXFLAGS) $(SRC) > makefile.dep

#------
# Re-create the config flags include file
#------
$(CSCONFIG.MAK):
cs-config --makevars > $(CSCONFIG.MAK)

#------
# Include dependencies
#------
-include makefile.dep

I need some help, it's an important project. Thanks.


[edit]
Ok, I've find for the Makefile, it was just to change SRC=main.cpp by SRC=src/main.cpp (it's hard to work with this heat). But I've got compils error like :
Code:
src/main.cpp : In member function 'bool Simple::HandleEvent(iEvent&)':
src/main.cpp:50: error: 'struct iEvent' has no member named 'Type'
Is there a librairy for this to include ?
[/edit]

[edit 2]
Allright, I've change ".Type" by ".Name", it's find, but I still have one error :
"'csevKeyboard' and 'csevQuit' was not declared in this scope."  Maybe it's not the good syntaxe.
[/edit 2]

[edit 3]
Allright, I find that the example of documentation is not uptodate at all. I find good example into the cs/data directory. So it may work now. Don't use the documentation exemple with cs 0.99, it will not work with iEvent, and well, there's lot of change into the 0.99 version.
[/edit 3]
« Last Edit: July 24, 2006, 07:37:50 pm by Protos » Logged
jorrit
Administrator
Hero Member
*****
Posts: 1706


View Profile
« Reply #1 on: July 24, 2006, 07:59:51 pm »

You have to use the right documentation that belongs with your version. Included with CS you can always find the version that matches your CS version. The ones on site are specific to released versions. On site you will find both 0.98 and latest svn documentation.

Greetings,
Logged
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 5.564 seconds with 17 queries.