jjj
jjj

Reputation: 23

Why do I get [Linker] error in Eiffel Mindstorms project?

System setup:

I get errors during linking, I think.

If anyone wants to help, find the project at https://github.com/boxer41a/jj_mindstorms. In my ecf files I use an environment variable JJ_GITHUB to point to the directory in which the project resides.

The project is in two parts: 1) a library, "jj_mindstorms.ecf" which references my "classes" directory and Lego's external "includes" and "libraries", and 2) a test project, "jj_mindstorms_tester", that uses the library.

I don't know if the problem is with the ecf files, modifications I made to the header files, or if I just can't run this on my platform. (BTW, both the original NXT software and the BricxCC compiler work just fine in this VirtualBox setting.)

  1. The errors I get are shown in "External Compilation.png" in the "tests" directory. The undefined references are related to external C features that use "NXT++.h". For example, in class MOTOR there is an external call to NXT::Motor::SetForward (...) in feature `c_set_forward'.
  2. In platform.h, I commented out some lines to force the C files to use the i386 defines. Otherwise, it would error out with "Unknown processor" or "Unknown platform".
  3. In NXT++.h, I added a guard "---nxt_pph---". Otherwise, I get duplicate symbol compile errors.
  4. The compiler finds the VirtualBox shared drive for the project.

So, is the problem in my ecf files, or can the library not link due to the platform thingy?

If it is a platform issue, anyone have idea how to rebuild Fantom or how to interface directly to the NXT Arm processor?

Thanks, jjj

Upvotes: 0

Views: 20

Answers (0)

Related Questions