Page 1 of 1

Can't get Irrlicht to work with eclipse

Posted: Sun Jan 02, 2011 12:48 pm
by KungFuLu
Hi,

I recently tried to use Irrlicht on a mac. As Codeblocks isn't very stable on a mac I chose eclipse as an IDE.
But when I try to use Irrlicht, I get this linker error: "ld: library not found for -lIrrlicht"
I checked the path to the library, renamed it several times, but it won't work.

Maybe someone knows a solution for this problem.
Thanks in advance,
-Lu

Posted: Sun Jan 02, 2011 2:21 pm
by yaten
hi sir kungfulu, i'm not quite sure what problem you are encountering but here are some of the things i can think of at the moment:

after running make on the irrlicht source directory, could you try running ldconfig?

EDIT:
attached below, is the Makefile that I use to compile my project, perhaps you could compare it with what you have and probably edit them as you like? the variable USERLDFLAGS can be blank.

Code: Select all

# Makefile for Irrlicht Examples
# It's usually sufficient to change just the target name and source file list
# and be sure that CXX is set to a valid compiler

homedir = /home/yaten
# Name of the executable created (.exe will be added automatically if necessary)
Target := irrTemplate.bin
# List of source files, separated by spaces
Sources := Main.cpp
# Path to Irrlicht directory, should contain include/ and lib/
IrrlichtHome := ${homedir}/src/irrlicht
# Path for the executable. Note that Irrlicht.dll should usually also be there for win32 systems
#BinPath = ../../bin/$(SYSTEM)
BinPath = ./

# general compiler settings (might need to be set when compiling the lib, too)
# preprocessor flags, e.g. defines and include paths
USERCPPFLAGS = 
# compiler flags such as optimization flags
USERCXXFLAGS = -O3 -ffast-math
#USERCXXFLAGS = -g -Wall
# linker flags such as additional libraries and link paths
USERLDFLAGS = -I./ -I${homedir}/src/yklib/cpp/Include -I${homedir}/src/XEffects/Source

####
#no changes necessary below this line
####

CPPFLAGS = -I$(IrrlichtHome)/include -I/usr/X11R6/include $(USERCPPFLAGS)
CXXFLAGS = $(USERCXXFLAGS)
LDFLAGS = $(USERLDFLAGS)

#default target is Linux
all: all_linux

# target specific settings
all_linux all_win32 static_win32: LDFLAGS += -L$(IrrlichtHome)/lib/$(SYSTEM) -lIrrlicht
all_linux: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lXext -lX11
all_linux clean_linux: SYSTEM=Linux
all_win32 clean_win32 static_win32: SYSTEM=Win32-gcc
all_win32 clean_win32 static_win32: SUF=.exe
static_win32: CPPFLAGS += -D_IRR_STATIC_LIB_
all_win32: LDFLAGS += -lopengl32 -lm
static_win32: LDFLAGS += -lgdi32 -lwinspool -lcomdlg32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lopengl32
# name of the binary - only valid for targets which set SYSTEM
DESTPATH = $(BinPath)/$(Target)$(SUF)

all_linux all_win32 static_win32:
	$(warning Building...)
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS)

clean: clean_linux clean_win32
	$(warning Cleaning...)

clean_linux clean_win32:
	@$(RM) $(DESTPATH)

.PHONY: all all_win32 static_win32 clean clean_linux clean_win32

#multilib handling
ifeq ($(HOSTTYPE), x86_64)
LIBSELECT=64
endif
#solaris real-time features
ifeq ($(HOSTTYPE), sun4)
LDFLAGS += -lrt
endif

Posted: Sun Jan 02, 2011 11:41 pm
by hybrid
You should, under most circumstances, use XCode on the Mac.

Posted: Tue Jan 04, 2011 5:26 pm
by KungFuLu
yaten: Thanks for your help, but I didn't run make on the Irrlicht source directory (at least I think I didn't ;))

hybrid: I think you're right. I thought it would be nice to have a cross-platform IDE, but all of them just work well under Windows and Linux and not on a Mac.