On 07/07/2005, at 12:58 AM, Joel Richardson wrote:
Here's what someone sent me a while back.
Hope this helps.
There is still linker error about missing symbols even with the new
linker flags in the Makefile
I might double check my mdf2c script as I have made modification to
it so that it can generate C++ code on Linux.
8<-----------8<-----------8<-----------8<-----------
merlion:~/projects/trunk/OpenDX/RIB nicholas$ make clean RIB
rm -f RIB *.o *.rib user.cpp *~
/usr/local/opendx/dx/bin/mdf2c -m RIB.mdf > user.cpp
g++ -no-cpp-precomp -dynamic -Wall -fno-common -fPIC -I/Applications/
Graphics/3Delight-4.0.4/include -I/usr/local/opendx/dx/include -c
user.cpp
g++ -no-cpp-precomp -dynamic -Wall -fno-common -fPIC -I/Applications/
Graphics/3Delight-4.0.4/include -I/usr/local/opendx/dx/include -c
RIB.cpp
g++ -no-cpp-precomp -dynamic -Wall -fno-common -fPIC -I/Applications/
Graphics/3Delight-4.0.4/include -I/usr/local/opendx/dx/include -c
RIBExporter.cpp
g++ -bundle -flat_namespace -bundle_loader /usr/local/opendx/dx/
bin_macos/dxexec -Wl,-iDXEntry:_DXEntry -e DXEntry user.o RIB.o
RIBExporter.o -o RIB -L/Applications/Graphics/3Delight-4.0.4/lib -L/
usr/local/opendx/dx/lib_macos -l3Delight -lm
/usr/bin/ld: Undefined symbols:
_DXEntry
DXAddModule(char*, ...)
m_RIB(object**, object**)
collect2: ld returned 1 exit status
make: *** [RIB] Error 1
8<-----------8<-----------8<-----------8<-----------
# Set up the various base path
RMANTREE = $(DELIGHT)
INCS = -I$(RMANTREE)/include -I$(DXROOT)/include
CFLAGS = -no-cpp-precomp -dynamic -Wall -fno-common -fPIC $(INCS)
CHECK = -bundle_loader $(DXROOT)/bin_macos/dxexec
LDFLAGS = -bundle -flat_namespace $(CHECK) -Wl,-iDXEntry:_DXEntry -e
DXEntry
LIBS = -L$(RMANTREE)/lib -L$(DXROOT)/lib_macos -l3Delight -lm
CC=gcc
CXX=g++
MDF2C=$(DXROOT)/bin/mdf2c
.c.o:
$(CC) $(CFLAGS) -c $<
.cpp.o:
$(CXX) $(CFLAGS) -c $<
.cxx.o:
$(CXX) $(CFLAGS) -c $<
# RIB module
RIB: user.o RIB.o RIBExporter.o
$(CXX) $(LDFLAGS) $? -o RIB $(LIBS)
user.cpp: RIB.mdf
$(MDF2C) -m $< > $@
#
# clean up objects and executables
#
clean:
rm -f RIB *.o *.rib user.cpp *~
8<-----------8<-----------8<-----------8<-----------