UPenn-RoboCup/UPennalizers

MacOSX support for Webots

Closed this issue · 5 comments

Update Makefiles to support compiling on both linux and macosx.

Seems to work, but there are make clean errors.

After building with MODE=64, I issue
make clean
MODE=32 make setup_webots_op

I get:

g++ -arch i386 -o cutil.dylib -bundle -undefined dynamic_lookup luacutil.o
ld: warning: ignoring file luacutil.o, file was built for unsupported file format which is not the architecture being linked (i386)

and

cd GameControl && make && cd /Users/stephen/robocup/UPennalizers/Lib/Platform/Webots_OP
g++ -arch i386 -o NSLGameControlReceiver.dylib -bundle -undefined dynamic_lookup luaNSLGameControlReceiver.o timeScalar.o -L/usr/local/lib -L/usr/lib -lm
ld: warning: ignoring file luaNSLGameControlReceiver.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file timeScalar.o, file was built for unsupported file format which is not the architecture being linked (i386)

and

ld -arch i386 -o controller.dylib -bundle -undefined dynamic_lookup controller_wrap.o -L/Applications/Webots/lib -lController /usr/lib/crt1.o
ld: warning: -macosx_version_min not specificed, assuming 10.6
ld: illegal text-relocation to non_lazy_ptr in /usr/lib/crt1.o from __start in /usr/lib/crt1.o for architecture i386

giving an error.

If I go into these specific directories, then issue make clean followed by make, the errors go away.

Aside from this, things work with OP in webots.

why did you run
MODE=32 make setup_webots_op

On Mon, Nov 21, 2011 at 5:59 PM, Stephen McGill <
reply@reply.github.com

wrote:

Seems to work, but there are make clean errors.

After building with MODE=64, I issue
make clean
MODE=32 make setup_webots_op

I get:

g++ -arch i386 -o cutil.dylib -bundle -undefined dynamic_lookup luacutil.o
ld: warning: ignoring file luacutil.o, file was built for unsupported file
format which is not the architecture being linked (i386)

and

cd GameControl && make && cd
/Users/stephen/robocup/UPennalizers/Lib/Platform/Webots_OP
g++ -arch i386 -o NSLGameControlReceiver.dylib -bundle -undefined
dynamic_lookup luaNSLGameControlReceiver.o timeScalar.o -L/usr/local/lib
-L/usr/lib -lm
ld: warning: ignoring file luaNSLGameControlReceiver.o, file was built for
unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file timeScalar.o, file was built for unsupported
file format which is not the architecture being linked (i386)

and

ld -arch i386 -o controller.dylib -bundle -undefined dynamic_lookup
controller_wrap.o -L/Applications/Webots/lib -lController /usr/lib/crt1.o
ld: warning: -macosx_version_min not specificed, assuming 10.6
ld: illegal text-relocation to non_lazy_ptr in /usr/lib/crt1.o from
__start in /usr/lib/crt1.o for architecture i386

giving an error.

If I go into these specific directories, then issue make clean followed by
make, the errors go away.

Aside from this, things work with OP in webots.


Reply to this email directly or view it on GitHub:
#9 (comment)

Because I have luajit compiled as 32 bit, lua as 64 bit. make clean did not remove the residual dylib's in some directories, so when I switched from lua to luajit, there were problems, and visa versa.
I posted a fix for the CUtil and GameControl problems, but still looking for the Webots clean problem...

I think this should be closed. Webots will not support compiling as 32 bit, but can support running 32bit code. I did need to add monitorComm on the MATLAB side of things. Check if it can compile on a linux system with MATLAB. It works on my mac.

Tested on Ubuntu build and Mac build. Works fine for both.