I have a project that I've imported, and I can build from the command line using our own build script (posted below), but I cannot build from within MCUXpresso. The error I get is:
Internal: No linker script for vendor=NXP proc=cortex-m0plus nature=0, project=<project name>
The build script is
SET TOOLCHAIN_PATH=C:\nxp\MCUXpressoIDE_10.3.1_2233\ide\tools\bin
SET IDE=C:\nxp\MCUXpressoIDE_10.3.1_2233\ide\mcuxpressoidec.exe
"%IDE%" -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data "c:\workspace" -import %~dp0Working\<project folder>
"%IDE%" -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data "c:\workspace" -cleanBuild <project folder>/Debug
 
					
				
		
 BlackNight
		
			BlackNight
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Does it work if you do it in 'interactive' mode (with the IDE GUI)?
And it would be helpful if you could share the files to reproduce this.
Erich
I see a similar problem, and the problem doesn't exist when doing it from an interactive account.
I see that when triggered from the command line, by our build system, under a non-interactive account, the workspace is created and projects are imported, the build is kicked off and makefiles are auto-generated, and at the end the build fails during linker stage with:
../arm-none-eabi/bin/ld.exe: cannot open linker script file *projectname*_Debug.ld: No such file or directory
Another observation: The project references are also ignored - only the named project is built. This also works when run from an interactive account.
It is written in powershell:
$WorkspaceDir = "$PSScriptRoot\..\..\Workspaces\BuildScriptWS"
$ProjectsDir = "$PSScriptRoot\..\..\Projects"
$MCUInstallBaseDir = "C:\nxp\MCUXpressoIDE_11.3.1_5262"
echo "Creating workspace at $WorkspaceDir"
cmd /c "$MCUInstallBaseDir\ide\mcuxpressoidec.exe -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data ""$WorkspaceDir"" -import ""$ProjectsDir\MyProj"" -import ""$ProjectsDir\MyProj_Library"" -import ""$ProjectsDir\MyProj_Bootloader"" -import ""$ProjectsDir\MyProj_bsp"" 2>&1"
if ($LASTEXITCODE -ne 0) { $(throw "Failed to create workspace" ) }
echo "Building $BuildConfiguration Application"
cmd /c "$MCUInstallBaseDir\ide\mcuxpressoidec.exe -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data ""$WorkspaceDir"" -build MyProj/$BuildConfiguration 2>&1"
if ($LASTEXITCODE -ne 0) { $(throw "Failed to build Application" ) }
Can you share the output from the command? At least the linker command and the error messages. Also look to see if a linker script has been generated (anywhere?). I know this works for me, but I am not on the latest and greatest version of MCUXpresso.
The command and output are shown here. When run off the back of a TFS build agent I can see that the makefiles are generated but the linker script is not. When I run the same script locally I see the makefiles and linker scripts are generated as expected.
arm-none-eabi-c++ -nostdlib -Xlinker -Map="MyProj.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --sort-section=alignment -Xlinker --cref -mcpu=cortex-m7 -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mthumb -T MyProj_Debug.ld -o "MyProj.axf" ./xip/evkmimxrt1170_flexspi_nor_config.o ./xip/fsl_flexspi_nor_boot.o ./source/fpga.o ./source/main.o ./source/semihost_hardfault.o ./flexspi/flexspi_hyperbus_ops.o ./flexspi/flexspi_nor_flash_ops.o ./OpenRTOS/kernel_source/portable/MemMang/heap_2.o ./OpenRTOS/kernel_source/portable/GCC/ARM_CM4F/port.o ./OpenRTOS/kernel_source/croutine.o ./OpenRTOS/kernel_source/event_groups.o ./OpenRTOS/kernel_source/list.o ./OpenRTOS/kernel_source/queue.o ./OpenRTOS/kernel_source/stream_buffer.o ./OpenRTOS/kernel_source/tasks.o ./OpenRTOS/kernel_source/timers.o ./OpenRTOS/OpenRTOS_Trace/trcBase.o ./OpenRTOS/OpenRTOS_Trace/trcHardwarePort.o ./OpenRTOS/OpenRTOS_Trace/trcKernel.o ./OpenRTOS/OpenRTOS_Trace/trcKernelPort.o ./OpenRTOS/OpenRTOS_Trace/trcUser.o ./OpenRTOS/OpenRTOSAbstraction/CHookFunctions.o ./OpenRTOS/OpenRTOSAbstraction/CPPHookFunctions.o ./OpenRTOS/OpenRTOSAbstraction/VMutex.o ./OpenRTOS/OpenRTOSAbstraction/VRTOS.o ./OpenRTOS/OpenRTOSAbstraction/VSemaphore.o ./OpenRTOS/OpenRTOSAbstraction/VTask.o ./OpenRTOS/OpenRTOSAbstraction/VTick.o ./OpenRTOS/OpenRTOSAbstraction/vqueue.o ./HAL/FlashInterface.o ./HAL/HDLCHardware.o ./HAL/PowerSourceInterface.o ./HAL/Wdog.o ./HAL/WdogInterface.o ./HAL/codrv_can_flexcan.o ./HAL/codrv_canbittiming.o ./HAL/codrv_cpu.o ./HAL/codrv_error.o ./HAL/hal_exceptions.o ./HAL/hal_id.o ./HAL/hal_interrupts.o ./HAL/hal_led.o ./HAL/hal_timer.o ./HAL/hyperbus.o ./Builder/Coordinator.o ./Builder/ProdData.o -lMyProj_CANopen -lMyProj_bsp -lMyProj_Library
c:/nxp/mcuxpressoide_11.3.1_5262/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file MyProj_Debug.ld: No such file or directoryI appreciate the help so far. Another route I want to try is running the TFS build agent in interactive mode (an interactive Windows user account) rather than as a service. I suspect this issue is caused by running via a service. However, this is difficult to set up with our IT infrastructure so will take some time to achieve.
