Visual Micro no link

jerryk

Member
Hello,

I am trying to get a Teensy project working in the Visual Studio/Visual Micro environment. It does build properly in Arduino 1.8 & also in 2.0.

I had to stick the following line in the Visual Micro "Location of IDE" popup for it to even give me the Teensy cards as a choice:
( in the Optional physical folder... field )
C:\Program Files (x86)\Arduino\hardware\teensy\avr

The visual micro guy says that's not right, I shouldn't do that. Don't understand exactly why. He says it should work without it....well, it doesn't.

So: it now compiles all my files. It does NOT however, link them. It seems like there are syntax errors in the gcc link invocation:

--------------- snip --------------------------------
Linking it all together ...
# Coping cached core C:\Users\jerry\AppData\Local\Temp\VMBCore\arduino16x\065bfc88d95e52e6f09c3e27f5f3fb8f\core.a to C:\Users\jerry\AppData\Local\Temp\VMBuilds\T41v15\teensy41\Debug\core.a

"C:\Program Files (x86)\Arduino\hardware\teensy/../tools/arm/bin/arm-none-eabi-gcc" -Og -Wl,--gc-sections,--relax "-TC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/imxrt1062_t41.ld" -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "C:\Users\jerry\AppData\Local\Temp\VMBuilds\T41v15\teensy41\Debug/T41v15.ino.elf" "T41v15.cpp.o" "Band.cpp.o" "Button.cpp.o" "CWProcessing.cpp.o" "Display.cpp.o" "DSP_Fn.cpp.o" "EEPROM.cpp.o" "Encoders.cpp.o" "Exciter.cpp.o" "FFT.cpp.o" "Filter.cpp.o" "FIR.cpp.o" "Freq_Shift.cpp.o" "Menu.cpp.o" "MenuProc.cpp.o" "Noise.cpp.o" "Process.cpp.o" "Tune.cpp.o" "Utility.cpp.o" "VM_DBG\VM_DBG.cpp.o" "VM_DBG\VM_mem_check_sam.cpp.o" "Adafruit_GFX_Library\glcdfont.c.o" "Adafruit_GFX_Library\Adafruit_GFX.cpp.o" "Adafruit_GFX_Library\Adafruit_GrayOLED.cpp.o" "Adafruit_GFX_Library\Adafruit_SPITFT.cpp.o" "Adafruit_BusIO\Adafruit_BusIO_Register.cpp.o" "Adafruit_BusIO\Adafruit_I2CDevice.cpp.o" "Adafruit_BusIO\Adafruit_SPIDevice.cpp.o" "Wire\Wire.cpp.o" "Wire\WireIMXRT.cpp.o" "Wire\WireKinetis.cpp.o" "Wire\utility\twi.c.o" "SPI\SPI.cpp.o" "Audio\memcpy_audio.S.o" "Audio\data_bandlimit_step.c.o" "Audio\data_spdif.c.o" "Audio\data_ulaw.c.o" "Audio\data_waveforms.c.o" "Audio\data_windows.c.o" "Audio\analyze_fft1024.cpp.o" "Audio\analyze_fft256.cpp.o" "Audio\analyze_notefreq.cpp.o" "Audio\analyze_peak.cpp.o" "Audio\analyze_print.cpp.o" "Audio\analyze_rms.cpp.o" "Audio\analyze_tonedetect.cpp.o" "Audio\async_input_spdif3.cpp.o" "Audio\control_ak4558.cpp.o" "Audio\control_cs42448.cpp.o" "Audio\control_cs4272.cpp.o" "Audio\control_sgtl5000.cpp.o" "Audio\control_tlv320aic3206.cpp.o" "Audio\control_wm8731.cpp.o" "Audio\effect_bitcrusher.cpp.o" "Audio\effect_chorus.cpp.o" "Audio\effect_combine.cpp.o" "Audio\effect_delay.cpp.o" "Audio\effect_delay_ext.cpp.o" "Audio\effect_envelope.cpp.o" "Audio\effect_fade.cpp.o" "Audio\effect_flange.cpp.o" "Audio\effect_freeverb.cpp.o" "Audio\effect_granular.cpp.o" "Audio\effect_midside.cpp.o" "Audio\effect_multiply.cpp.o" "Audio\effect_rectifier.cpp.o" "Audio\effect_reverb.cpp.o" "Audio\effect_wavefolder.cpp.o" "Audio\effect_waveshaper.cpp.o" "Audio\filter_biquad.cpp.o" "Audio\filter_fir.cpp.o" "Audio\filter_ladder.cpp.o" "Audio\filter_variable.cpp.o" "Audio\input_adc.cpp.o" "Audio\input_adcs.cpp.o" "Audio\input_i2s.cpp.o" "Audio\input_i2s2.cpp.o" "Audio\input_i2s_hex.cpp.o" "Audio\input_i2s_oct.cpp.o" "Audio\input_i2s_quad.cpp.o" "Audio\input_pdm.cpp.o" "Audio\input_pdm_i2s2.cpp.o" "Audio\input_spdif3.cpp.o" "Audio\input_tdm.cpp.o" "Audio\input_tdm2.cpp.o" "Audio\mixer.cpp.o" "Audio\output_adat.cpp.o" "Audio\output_dac.cpp.o" "Audio\output_dacs.cpp.o" "Audio\output_i2s.cpp.o" "Audio\output_i2s2.cpp.o" "Audio\output_i2s_hex.cpp.o" "Audio\output_i2s_oct.cpp.o" "Audio\output_i2s_quad.cpp.o" "Audio\output_mqs.cpp.o" "Audio\output_pt8211.cpp.o" "Audio\output_pt8211_2.cpp.o" "Audio\output_pwm.cpp.o" "Audio\output_spdif.cpp.o" "Audio\output_spdif2.cpp.o" "Audio\output_spdif3.cpp.o" "Audio\output_tdm.cpp.o" "Audio\output_tdm2.cpp.o" "Audio\play_memory.cpp.o" "Audio\play_queue.cpp.o" "Audio\play_sd_raw.cpp.o" "Audio\play_sd_wav.cpp.o" "Audio\play_serialflash_raw.cpp.o" "Audio\Quantizer.cpp.o" "Audio\record_queue.cpp.o" "Audio\Resampler.cpp.o" "Audio\spi_interrupt.cpp.o" "Audio\synth_dc.cpp.o" "Audio\synth_karplusstrong.cpp.o" "Audio\synth_pinknoise.cpp.o" "Audio\synth_pwm.cpp.o" "Audio\synth_simple_drum.cpp.o" "Audio\synth_sine.cpp.o" "Audio\synth_tonesweep.cpp.o" "Audio\synth_waveform.cpp.o" "Audio\synth_wavetable.cpp.o" "Audio\synth_whitenoise.cpp.o" "Audio\utility\sqrt_integer.c.o" "Audio\utility\imxrt_hw.cpp.o" "SD\SD.cpp.o" "SdFat\FreeStack.cpp.o" "SdFat\MinimumSerial.cpp.o" "SdFat\common\FmtNumber.cpp.o" "SdFat\common\FsCache.cpp.o" "SdFat\common\FsDateTime.cpp.o" "SdFat\common\FsName.cpp.o" "SdFat\common\FsStructs.cpp.o" "SdFat\common\FsUtf.cpp.o" "SdFat\common\PrintBasic.cpp.o" "SdFat\common\upcase.cpp.o" "SdFat\ExFatLib\ExFatDbg.cpp.o" "SdFat\ExFatLib\ExFatFile.cpp.o" "SdFat\ExFatLib\ExFatFilePrint.cpp.o" "SdFat\ExFatLib\ExFatFileWrite.cpp.o" "SdFat\ExFatLib\ExFatFormatter.cpp.o" "SdFat\ExFatLib\ExFatName.cpp.o" "SdFat\ExFatLib\ExFatPartition.cpp.o" "SdFat\ExFatLib\ExFatVolume.cpp.o" "SdFat\ExFatLib\upcase.cpp.o" "SdFat\FatLib\FatDbg.cpp.o" "SdFat\FatLib\FatFile.cpp.o" "SdFat\FatLib\FatFileLFN.cpp.o" "SdFat\FatLib\FatFilePrint.cpp.o" "SdFat\FatLib\FatFileSFN.cpp.o" "SdFat\FatLib\FatFormatter.cpp.o" "SdFat\FatLib\FatName.cpp.o" "SdFat\FatLib\FatPartition.cpp.o" "SdFat\FatLib\FatVolume.cpp.o" "SdFat\FsLib\FsFile.cpp.o" "SdFat\FsLib\FsNew.cpp.o" "SdFat\FsLib\FsVolume.cpp.o" "SdFat\iostream\istream.cpp.o" "SdFat\iostream\ostream.cpp.o" "SdFat\iostream\StdioStream.cpp.o" "SdFat\iostream\StreamBaseClass.cpp.o" "SdFat\SdCard\SdCardInfo.cpp.o" "SdFat\SdCard\SdioTeensy.cpp.o" "SdFat\SdCard\SdSpiCard.cpp.o" "SdFat\SpiDriver\SdSpiArtemis.cpp.o" "SdFat\SpiDriver\SdSpiChipSelect.cpp.o" "SdFat\SpiDriver\SdSpiDue.cpp.o" "SdFat\SpiDriver\SdSpiESP.cpp.o" "SdFat\SpiDriver\SdSpiParticle.cpp.o" "SdFat\SpiDriver\SdSpiSTM32.cpp.o" "SdFat\SpiDriver\SdSpiSTM32Core.cpp.o" "SdFat\SpiDriver\SdSpiTeensy3.cpp.o" "SerialFlash\SerialFlashChip.cpp.o" "SerialFlash\SerialFlashDirectory.cpp.o" "Time\DateStrings.cpp.o" "Time\Time.cpp.o" "Metro\Metro.cpp.o" "Bounce\Bounce.cpp.o" "Etherkit_Si5351\si5351.cpp.o" "RA8875\glcdfont.c.o" "RA8875\RA8875.cpp.o" "C:\Users\jerry\AppData\Local\Temp\VMBuilds\T41v15\teensy41\Debug/core.a" "-LC:\Users\jerry\AppData\Local\Temp\VMBuilds\T41v15\teensy41\Debug" -larm_cortexM7lfsp_math -lm -lstdc++

Error linking for board Teensy 4.1 (teensy41)
Debug build failed for project 'T41v15'
--------------- endsnip ----------------------------

Note that it does not show any actual error. So I copied the invocation and pasted it into a windows PowerShell. It gave the following errors:

-------------- snip -------------------------
At line:1 char:85
+ ... duino\hardware\teensy/../tools/arm/bin/arm-none-eabi-gcc" -Og -Wl,--g ...
+ ~~~
Unexpected token '-Og' in expression or statement.
At line:1 char:89
+ ... o\hardware\teensy/../tools/arm/bin/arm-none-eabi-gcc" -Og -Wl,--gc-se ...
+ ~~~
Unexpected token '-Wl' in expression or statement.
At line:1 char:92
+ ... \hardware\teensy/../tools/arm/bin/arm-none-eabi-gcc" -Og -Wl,--gc-sec ...
+ ~
Missing argument in parameter list.
+ CategoryInfo : ParserError: :)) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
-------------- endsnip ---------------------
 
Back
Top