"String" undefined error when building RepRapFirmware 3



  • Now that I sloppily soldered my headers on the logic level shifter, I want to build RepRapFirmware. Since my last build was about half a year ago, I started over from a clean slate. Building the libraries (CoreNG, RRFLibraries, FreeRTOS) worked fine. (DuetWifiSocketServer is complaining about missing xtensa-g++ because it's not installed on this machine, but I can ignore that for now. CANlib builds without issue).

    Trying to build RepRapFirmware, I get a bunch of C++ errors about "String" and "MakeBitmap" not defined in the scope.

    My best guess is that I messed up my build environment when updating everything to RRF3. I have attached my build log in the hopes that someone will see what I did wrong.
    RepRapFirmware.build.txt



  • @oliof said in "String" undefined error when building RepRapFirmware 3:

    "MakeBitmap" not defined in the scope.

    related to RRFLibrary methinks, i struggled getting the correct versions from git to build rrf3 as well, don't recall what I ended up with in the end. (the build procedure was also picky about order of building and cleaning things after updating code from git, but out of my depth that stuff)

    but if this is to enable the lcd support I ended up with an oversized binary for rrf3, so you'll be better off with rrf2



  • Thanks, I thought I picked the right branches from github, but I will give it another go.



  • cd CoreNG               && git reset --hard && git checkout dev      ; cd ..
    cd CANlib               && git reset --hard && git checkout master   ; cd ..
    cd RRFLibraries         && git reset --hard && git checkout dev      ; cd ..
    cd FreeRTOS             && git reset --hard && git checkout master   ; cd ..
    cd RepRapFirmware       && git reset --hard && git checkout 3.01-RC7 ; cd ..
    cd DuetWiFiSocketServer && git reset --hard && git checkout master   ; cd ..
    cd RepRapFirmware
    git apply --ignore-whitespace  12864.rrf3.patch
    

    is what i found in my bash history; then refresh each project in eclipse, clean each project, build all but RRF, clean RRF and build RRF seems to work. not sure which of those are redundant.

    (there was probably a git pull in there as well at some point)



  • Switching to RRF2 yielded an error free run, even though DuetWifiSocketServer took some coaxing to add to the workspace. I will try RRF3 again now that I know the overall build system is working.



  • well, checking out everything once more and building it from scratch made my error go away. Thanks for stopping by (-:



  • btw been meaning to figure out how to do that..

    cd ~/eclipse/firmware
    #CoreNG
    ~/eclipse/eclipse \
    --launcher.suppressErrors \
    -nosplash \
    -application org.eclipse.cdt.managedbuilder.core.headlessbuild \
    -data ~/eclipse/firmware \
    -cleanBuild "CoreNG/SAM4E8E"
    #FreeRTOS
    ~/eclipse/eclipse \
    --launcher.suppressErrors \
    -nosplash \
    -application org.eclipse.cdt.managedbuilder.core.headlessbuild \
    -data ~/eclipse/firmware \
    -cleanBuild "FreeRTOS/SAM4E"
    #RRFLib
    ~/eclipse/eclipse \
    --launcher.suppressErrors \
    -nosplash \
    -application org.eclipse.cdt.managedbuilder.core.headlessbuild \
    -data ~/eclipse/firmware \
    -cleanBuild "RRFLibraries/SAM4E_RTOS"
    #RRF
    ~/eclipse/eclipse \
    --launcher.suppressErrors \
    -nosplash \
    -application org.eclipse.cdt.managedbuilder.core.headlessbuild \
    -data ~/eclipse/firmware \
    -cleanBuild "RepRapFirmware/Duet2_RTOS"
    

    but no, it doesn't build properly when switching between rrf2 and rrf3. i'll have to build a new wall before i can return to banging my head against the wall..



  • @oliof said in "String" undefined error when building RepRapFirmware 3:

    building it from scratch made my error go away

    think its related to step 14. Build CoreNG first, also build FreeRTOS, RRFLibraries and CANlib if needed. Then clean and build RepRapFirmware (the clean step is needed to make Eclipse notice that the output library files in the other projects have been built)



  • It's all very confusing. Checked out everything again, and now RRF3 builds except at the end

    make --no-print-directory post-build
    Generating binary file
    arm-none-eabi-objcopy -O binary "C:\Eclipse\Firmware\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.elf" "C:\Eclipse\Firmware\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.bin" && crc32appender "C:\Eclipse\Firmware\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.bin"
    c:/program files/gnu arm eclipse/build tools/2.6-201507152002/bin/sh: crc32appender: not found
    makefile:91: recipe for target 'post-build' failed
    

    ... and I just found https://forum.duet3d.com/topic/12275/crc32appender-now-needed-for-rrf/29


Log in to reply