ecf file or linker problem?

14 views
Skip to first unread message

Jimmy Johnson

unread,
Mar 31, 2025, 11:27:58 PMMar 31
to Eiffel Users

I posted this question on stackoverflow a month ago but no answers.  Hoping one of you EiffelStudio experts can see the problem.  I would not be surprised if the problem is a stupid error in one or both of my ecf files.

Help is so appreciated.  jjj


System setup:

  • VirtualBox Windows XP on iMac host.
  • EiffelStudio 18.11
  • Lego Mindstorms NXT
  • Fantom driver

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



Reply all
Reply to author
Forward
0 new messages