Skip to main content

[LEGONXT] cannot find -llejososek / library missing

From my article last year, I have shown how to build up the source tree for the legacy of NXT source code. With the proper configuration, i.e., set up the path for ARM cross compiler in toolgcc.mak, directly under the sample folder, we should be able to compile the source code and integrate them with the essential kernel objects.

However, someone asks me that why he did some implementation in ecrobot sources and the compiler reports that those new implemented functions are not applicable, i.e., undefined. It is because that all the additional static libraries (those files with extension .a) are required to be compiled in advance before compiling the test suites/samples.

There are some known issues which are solved:
  1. cannot find -llejososek
    This can be solved by compiling the source in folder e.g., "nxtOSEK_proj/c++/src". liblejososek.a will be generated in the parent folder, e.g., "nxtOSEK_proj/c++/"
  2. new implemented functions in ecrobot are undefined
    This can be solved by compiling the corresponding code in ecrobot folder. For example, libnxtway_gs_balancer.a need to be generated by compiling to source in the sub folder nxtway_gs_balancer. libnxtway_gs_balancer.a will be generated in ecrobot folder.
Remark (ref):
.a files are static libraries typically generated by the archive tool. You usually include the header files associated with that static library and then link to the library when you are compiling.
Use command ar can see the content inside. It is usually the correction of .o:
ar tv foo.a

Comments

Popular posts from this blog

RSB+RTEMS 5/6 with QEMU-SMP (ARM realview_pbx_a9_qemu as example)

Since I got a request regarding this blog  written in 2016, summarizing again the complete flow with the latest version of RTEMS could be a good idea. Prepare a suitable workspace according to the adopted operating system on your host ( https://docs.rtems.org/branches/master/user/hosts/index.html ):  sudo apt-get build-dep build-essential gcc-defaults g++ gdb git unzip pax bison flex texinfo unzip python3-dev libpython-dev libncurses5-dev zlib1g-dev Checkout RSB and build: git clone git://git.rtems.org/rtems-source-builder.git rsb change directory to rsb/rtems/ and type ../source-builder/sb-set-builder --prefix=<the path you like to store the built toolchains> <the name of bsp> For example, to use QEMU, I need toolchains for ARM, so: ../source-builder/sb-set-builder --prefix=/home/kh.chen/respository/build/. 6/rtems-arm This will take a while. Please ensure your connection is reliable. Add the built folder into your PATH. For example, you can add one line in ~/.bas...

[Gem5] Full system Simulation with Official Kernel

I follow the youtube provided by Gem5 to get the inspiration. (http://gem5.org/Running_gem5#Full_System_.28FS.29_Mode) I download the file here: http://www.gem5.org/dist/current/arm/ with http://www.gem5.org/dist/current/arm/aarch-system-20170616.tar.xz Then Set up M5_PATH as the place I extract the files: "/home/khchen/full_system_images/" If the setting is correct, assigning the disk-image will finish the rest of setting for dtb and kernel specifications. So far I can only use this img (aarch32-ubuntu-natty-headless.img) as my disk-image to run up to the login interface of the ubuntu: build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/khchen/full_system_images/disks/aarch32-ubuntu-natty-headless.img With the other imgs, for example like "aarch64-ubuntu-trusty-headless.img", I think the kernel and the dtb should be given manually, because it will automatically load something with aarch32 prefix which doesn't make sense: info: kernel ...

[ubuntu] Removing the instance/package which is not fully installed from apt-get

When I'm installing g77-3.4 for pgplot, I trivially use dkpg to install it. However, g77-3.4-doc is not able to fully installed. And I stuck for this kind of error due to the broken packages (refer to here ): dpkg: error processing realplayer (--configure/--purge/--remove): (Whatever messages) Errors were encountered while processing: g77-3.4-doc cd /var/lib/dpkg/info sudo rm g77-3.4-doc* sudo dpkg --remove --force-remove-reinstreq g77-3.4-doc Hmm, now apt-get works well again. https://www.youtube.com/watch?v=S9HJ-iAzf3k