Can't compile

Home Forums OWL OwlWare Can't compile

This topic contains 24 replies, has 3 voices, and was last updated by  JoseFuzzNo 1 year, 1 month ago.

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #2525

    racerg
    Participant

    Hi:

    Newbie to this…

    Followed the readme on the OwlWare Git page…downloaded all, etc.

    When running Make : i get an error saying the following files can’t be found (and all is set-up exactly as your readme files suggests):

    libs.mk
    f4.mk

    I can’t figure out what’s wrong….

    -Gary

    #2527

    Martin Klang
    Keymaster

    What is the full error message?
    Is it possible it is not finding the right gcc-arm compiler?
    You might have to edit common.mk to set the correct TOOLROOT depending on what version you downloaded and where you put it.

    #2528

    racerg
    Participant

    Hi Martin:

    This shows my newbie status!

    My problem I believe, is I am not setting my paths correctly, as i don’t understand what the exact syntax should be and I can’t seem to find any docs specifically about this…

    For example, in your common.mk file you have the following:

    # Tool path
    # TOOLROOT ?= Tools/gcc-arm-none-eabi-5_3-2016q1/bin/ # missing strnlen/strlcpy
    TOOLROOT ?= Tools/gcc-arm-none-eabi-5_2-2015q4/bin/
    STLINK ?= $(TEMPLATEROOT)/Tools/stlink/
    DFUUTIL ?= $(TEMPLATEROOT)/Tools/dfu-util/dfu-util

    Am I supposed to delete the question marks you show above for my path? Any doc on the syntax for this?

    Thanks,

    Gary

    #2529

    racerg
    Participant

    Hi again, martin:

    Here is the error I get:

    smf@smf-PC /cygdrive/c/Users/smf/Desktop/OwlWare
    $ MAKE
    /bin/sh: -c: line 0: syntax error near unexpected token `C:/Users/smf/Desktop/OwlWare/Tools/ arm-none-eabi/arm-none-eabi-gcc’
    /bin/sh: -c: line 0: `(TEMPLATEROOT)C:/Users/smf/Desktop/OwlWare/Tools/arm-none-eabi/arm-non e-eabi-gcc -c -g -Wall -Wcpp -Wunused-function -DDEBUG -DUSE_FULL_ASSERT –specs=nano.specs -DEXTERNAL_SRAM -DARM_CORTEX -fdata-sections -ffunction-sections -nostdlib -nostartfiles -fn o-builtin -ffreestanding -mtune=cortex-m4 -I./Libraries/FreeRTOS/include -I./Libraries/FreeR TOS/portable/GCC/ARM_CM4F -I./ProgramSource -I./Libraries/OwlPatches -std=gnu99 -mcpu=cortex -m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -I./Libraries -I. /Libraries/CMSIS/Include -I./Libraries/STM32F4xx_StdPeriph_Driver/inc -I./Source -I./Librari es/CMSIS/ST/STM32F4xx/Include -I./Libraries/CMSIS/Include -I./Libraries/STM32_USB_Device_Lib rary/Core/inc -I./Libraries/STM32_USB_Device_Library/Class/cdc/inc -I./Libraries/STM32_USB_O TG_Driver/inc -DUSE_STDPERIPH_DRIVER -DARM_MATH_CM4 -D__FPU_PRESENT -D__FPU_USED=1 -DSTM32F4 07xx -DSTM32F4XX ./Source/codec.c -o Build/codec.o’
    MAKE: *** [common.mk:51: Build/codec.o] Error 1

    My common.mk file is now (and I have no idea what I am doing-remainder of file is same as yours):

    # Tool path
    # TOOLROOT ?= Tools/gcc-arm-none-eabi-5_3-2016q1/bin/ # missing strnlen/strlcpy
    TOOLROOT ?= $ (TEMPLATEROOT)C:/Users/smf/Desktop/OwlWare/Tools/arm-none-eabi/

    -Gary

    #2530

    Martin Klang
    Keymaster

    Don’t worry! Makefile syntax can be a bit cryptic: ?= means ‘set if not already defined’ and $(xyz) is how you refer to the value of parameter xyz.
    Are you using Cygwin on Windows? You can try removing the whole TOOLROOT line, since the tools should be included in the search path. Or, if you’ve really installed them in a directory called arm-none-eabi in the Tools subfolder:
    TOOLROOT ?= Tools/arm-none-eabi/bin

    #2531

    racerg
    Participant

    Hi Martin:

    Yes, on windows…

    I tried your ideas, same result.

    When I add or remove a directory or make changes to the common.mk file, do i need to do anything else (‘clean’ or something)?

    -Gary

    #2532

    racerg
    Participant

    Martin:

    Making some progress…ran everything on another Windows PC and have compiled some files.

    One thing I noted:

    In my ‘tools’ folder, the files the common.mk were looking for were in the ‘bin’ folder, NOT the bin folder in ‘arm-none-eabii’ folder- this folder does have a ‘bin’ folder, but the files common.mk was looking for were in the bin folder in my tools root…I don’t know why?

    Anyway, now getting errors relating to the MidiController.cpp file, here is the error text:

    gh@gh-HP /cygdrive/c/Users/gh/Desktop/OwlWare/owlware
    $ make
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendPatchP arameterName(PatchParameterId, const char*)’:
    ./Source/MidiController.cpp:78:34: error: ‘strnlen’ was not declared in this scope
    uint8_t size = strnlen(name, 24);
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendPatchN ame(uint8_t)’:
    ./Source/MidiController.cpp:95:36: error: ‘strnlen’ was not declared in this sco pe
    uint8_t size = strnlen(name, 24);
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendProgra mStats()’:
    ./Source/MidiController.cpp:156:39: error: ‘stpcpy’ was not declared in this sco pe
    p = stpcpy(p, (const char*)”CPU: “);
    ^
    ./Source/MidiController.cpp:174:49: error: ‘stpcpy’ was not declared in this sco pe
    p = stpcpy(p, (const char*)”Memory Error 0x”);
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendProgra mMessage()’:
    ./Source/MidiController.cpp:211:35: error: ‘stpncpy’ was not declared in this sc ope
    p = stpncpy(p, pv->message, 62);
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendFirmwa reVersion()’:
    ./Source/MidiController.cpp:221:37: error: ‘stpcpy’ was not declared in this sco pe
    p = stpcpy(p, getFirmwareVersion());
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendConfig urationSetting(const char*, uint32_t)’:
    ./Source/MidiController.cpp:229:21: error: ‘stpcpy’ was not declared in this sco pe
    p = stpcpy(p, name);
    ^
    ./Source/MidiController.cpp: In member function ‘void MidiController::sendDevice Id()’:
    ./Source/MidiController.cpp:239:41: error: ‘stpcpy’ was not declared in this sco pe
    p = stpcpy(p, itoa(deviceId[0], 16, 8));
    ^
    make: *** [common.mk:55: Build/MidiController.o] Error 1

    #2533

    Martin Klang
    Keymaster

    Okay so that’s good progress. What version of the compiler are you running? Do arm-none-eabi-gcc --version to find out. For example, I get arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160609 (release) [ARM/embedded-5-branch revision 237715]

    #2534

    racerg
    Participant

    Hi Martin:

    This version:

    gcc-arm-none-eabi-5_4-2016q3-20160926-win32.zip

    Maybe I should use your version?

    if I do, I need to somehow delete all compiled files, I assume, and start over?

    Is there a command to do this?

    Thanks!

    -Gary

    #2535

    Martin Klang
    Keymaster

    You can delete all compiled files with make clean, but I don’t think the problem is your version of the compiler.

    The top of MidiController.cpp should have the line #include <string.h>. The missing functions strnlen and stpcpy should be declared in this header. I’ve just tried compiling from the master branch and it works for me, but I’m not on Windows.

    Can you pls try changing Makefile line 38, from CXXFLAGS = -fno-rtti -fno-exceptions -std=c++11 to CXXFLAGS = -fno-rtti -fno-exceptions -std=gnu++11 (ie change c++11 to gnu++11).

    #2536

    Martin Klang
    Keymaster

    Just to make sure: you know you don’t have to compile OwlWare to make your own patches, right?

    #2537

    racerg
    Participant

    Hi Martin:

    Yes, I know that…my software partner is sick so I am trying to do everything myself and it’s been some time since I programmed…

    Made the change to the Makefile per your suggestion- thanks, seems to work.

    Now I am getting (and I can’t seem to find the file called for: biquadfilter.h):

    gh@gh-HP /cygdrive/c/users/gh/desktop/owlware/owlware
    $ make
    In file included from ./Source/factory.h:15:0,
    from ./Source/FactoryPatches.cpp:32:
    ./Libraries/OwlPatches/LpfDelayPatch.hpp:35:26: fatal error: BiquadFilter.h: No such file or directory
    compilation terminated.
    make: *** [common.mk:55: Build/FactoryPatches.o] Error 1

    -Gary

    #2538

    racerg
    Participant

    Hi Martin:

    Regarding the missing biquadfilter.h file: There was a biquadfilter.hpp file, so, I just copied the file into the same directory with a .h extension and that seems OK (so I now have a .h and .hpp biquadfilter file)…not sure if that will cause other problems, but the compiler was happy.

    Now on to more errors, similar to the last ones:

    $ make
    In file included from ./Source/factory.h:1:0,
    from ./Source/FactoryPatches.cpp:32:
    ./Libraries/OwlPatches/JotReverbPatch.hpp:720:5: error: ‘FloatParameter’ does no t name a type
    FloatParameter cutoffFrequency;
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:721:5: error: ‘FloatParameter’ does no t name a type
    FloatParameter roomSizeSeconds;
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:722:5: error: ‘FloatParameter’ does no t name a type
    FloatParameter reverbTimeSeconds;
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:723:5: error: ‘FloatParameter’ does no t name a type
    FloatParameter dryWet;
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:724:5: error: ‘FloatParameter’ does no t name a type
    FloatParameter predelaySeconds;
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp: In constructor ‘JotReverbPatch::JotRe verbPatch()’:
    ./Libraries/OwlPatches/JotReverbPatch.hpp:686:2: error: ‘roomSizeSeconds’ was no t declared in this scope
    roomSizeSeconds = getFloatParameter(“Room Size”, 0.15, 0.6, 0.4, 0.0, delta);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:686:77: error: ‘getFloatParameter’ was not declared in this scope
    roomSizeSeconds = getFloatParameter(“Room Size”, 0.15, 0.6, 0.4, 0.0, delta);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:687:2: error: ‘predelaySeconds’ was no t declared in this scope
    predelaySeconds = getFloatParameter(“Predelay”, 0, 0.1, 0, 0.0, delta);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:688:2: error: ‘reverbTimeSeconds’ was not declared in this scope
    reverbTimeSeconds = getFloatParameter(“Decay”, 1, 10, 5, 0.0, delta);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:689:2: error: ‘dryWet’ was not declare d in this scope
    dryWet = getFloatParameter(“Dry/Wet”, 0, 1.0, 0.5, 0.95, delta);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:690:2: error: ‘cutoffFrequency’ was no t declared in this scope
    cutoffFrequency = getFloatParameter(“Tone”, 16000, 1000, 8000, 0.0, delta); // reversed range 16k to 1k
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp: In member function ‘virtual void JotR everbPatch::processAudio(AudioBuffer&)’:
    ./Libraries/OwlPatches/JotReverbPatch.hpp:707:48: error: ‘dryWet’ was not declar ed in this scope
    bufL[i+k] = theReverbBlock.left_output[k]*dryWet + bufL[i+k]*(1.0-dryWet);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:697:13: warning: unused variable ‘nbCh annels’ [-Wunused-variable]
    int nbChannels = buffer.getChannels();
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp: In member function ‘void JotReverbPat ch::setParams()’:
    ./Libraries/OwlPatches/JotReverbPatch.hpp:715:65: error: ‘reverbTimeSeconds’ was not declared in this scope
    reverbSetParam(&theReverbBlock, getSampleRate(), 100.0, reverbTimeSecon ds, roomSizeSeconds, cutoffFrequency, predelaySeconds);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:715:84: error: ‘roomSizeSeconds’ was n ot declared in this scope
    reverbSetParam(&theReverbBlock, getSampleRate(), 100.0, reverbTimeSecon ds, roomSizeSeconds, cutoffFrequency, predelaySeconds);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:715:101: error: ‘cutoffFrequency’ was not declared in this scope
    reverbSetParam(&theReverbBlock, getSampleRate(), 100.0, reverbTimeSecon ds, roomSizeSeconds, cutoffFrequency, predelaySeconds);
    ^
    ./Libraries/OwlPatches/JotReverbPatch.hpp:715:118: error: ‘predelaySeconds’ was not declared in this scope
    reverbSetParam(&theReverbBlock, getSampleRate(), 100.0, reverbTimeSecon ds, roomSizeSeconds, cutoffFrequency, predelaySeconds);
    ^
    In file included from ./Libraries/OwlPatches/LpfDelayPatch.hpp:34:0,
    from ./Source/factory.h:15,
    from ./Source/FactoryPatches.cpp:32:
    ./Libraries/OwlPatches/CircularBuffer.hpp: In member function ‘void CircularBuff er::write(float)’:
    ./Libraries/OwlPatches/CircularBuffer.hpp:18:21: warning: comparison between sig ned and unsigned integer expressions [-Wsign-compare]
    if(++writeIndex == buffer.getSize())
    ^
    make: *** [common.mk:55: Build/FactoryPatches.o] Error 1

    -Gary

    #2540

    racerg
    Participant

    Hi Martin:

    Sorry for so many problems…please see my last reply, above.

    Also- maybe the issues are with Windows machines?

    I will try and compile based on your computer type, software, etc.

    Can you tell me what you are using for a computer…Mac? Which version of OSX? Which op system, and which software you are using, and I will try to make it all work.

    Thanks!

    -Gary

    #2541

    Martin Klang
    Keymaster

    Ouch, that’s my bad!
    The latest version of the patches is not fully compatible with the current OwlWare version.
    It’s a bit of a mess, sorry!
    If you comment out the patches that don’t work in factory.h and factory.cpp then you can at least get a working firmware.
    Meanwhile I’ll try to sort this out by bringing the OwlWare code up to date.

Viewing 15 posts - 1 through 15 (of 25 total)

You must be logged in to reply to this topic.


Latest News

Links

Follow us on Twitter