Repository navigation
Failed to build on Windows #85
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Hello,
I’m not able to compile flutterpi on Windows.
flutter --version
Flutter 3.38.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 67323de285 (9 days ago) • 2026-01-28 13:43:12 -0800
Engine • hash 5eb06b7ad5bb8cbc22c5230264c7a00ceac7674b (revision 587c18f873) (9 days ago) • 2026-01-27 23:23:03.000Z
Tools • Dart 3.10.8 • DevTools 2.51.1
flutter clean
flutter pub get
flutterpi_tool build --arch=arm64 --cpu=pi4 --release
Target dart_build failed: ProcessException: Failed to find "which" in the search path.
Command: which
#0 LocalProcessManager.run (package:process/src/interface/local_process_manager.dart:87:7)
#1 ErrorHandlingProcessManager.run.<anonymous closure> (package:flutter_tools/src/base/error_handling_io.dart:628:26)
#2 _run (package:flutter_tools/src/base/error_handling_io.dart:514:20)
#3 ErrorHandlingProcessManager.run (package:flutter_tools/src/base/error_handling_io.dart:626:12)
#4 cCompilerConfigLinux (package:flutter_tools/src/isolated/native_assets/linux/native_assets.dart:29:66)
#5 LinuxAssetTarget.setCCompilerConfig (package:flutter_tools/src/isolated/native_assets/targets.dart:249:35)
#6 FlutterNativeAssetsBuildRunnerImpl.setCCompilerConfig (package:flutter_tools/src/isolated/native_assets/native_assets.dart:262:75)
#7 runFlutterSpecificHooks (package:flutter_tools/src/isolated/native_assets/native_assets.dart:82:23)
<asynchronous suspension>
#8 DartBuild.build (package:flutter_tools/src/build_system/targets/native_assets.dart:76:14)
<asynchronous suspension>
#9 _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:895:9)
<asynchronous suspension>
#10 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#11 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:833:32)
<asynchronous suspension>
#12 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#13 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:833:32)
<asynchronous suspension>
#14 FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:653:16)
<asynchronous suspension>
#15 AppBuilder.build (package:flutterpi_tool/src/build_system/build_app.dart:134:22)
<asynchronous suspension>
#16 BuildCommand.runCommand (package:flutterpi_tool/src/cli/commands/build.dart:174:5)
<asynchronous suspension>
#17 FlutterpiCommandMixin.run.<anonymous closure> (package:flutterpi_tool/src/cli/flutterpi_command.dart:448:7)
<asynchronous suspension>
#18 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#19 FlutterpiCommandMixin.run (package:flutterpi_tool/src/cli/flutterpi_command.dart:439:12)
<asynchronous suspension>
#20 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#21 main.<anonymous closure> (package:flutterpi_tool/src/executable.dart:60:9)
<asynchronous suspension>
#22 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#23 runInContext (package:flutterpi_tool/src/context.dart:26:10)
<asynchronous suspension>
#24 main (package:flutterpi_tool/src/executable.dart:57:3)
<asynchronous suspension>
#25 main (file:///C:/Users/Test/AppData/Local/Pub/Cache/hosted/pub.dev/flutterpi_tool-0.10.1/bin/flutterpi_tool.dart:4:3)
<asynchronous suspension>
Target copy_flutterpi_assets_flutter-pi_release failed: PathNotFoundException: Cannot copy file to 'build\flutter-pi\pi4-64\NativeAssetsManifest.json', path =
'D:\test\dart_tool\flutter_build\697c5e033aca9e6d7d88fd1ba1937abd\native_assets.json' (OS Error: Impossibile trovare il file specificato, errno = 2)
#0 _checkForErrorResponse (dart:io/common.dart:58:9)
#1 _File.copy.<anonymous closure> (dart:io/file_impl.dart:410:7)
#2 _rootRunUnary (dart:async/zone.dart:1538:47)
#3 _CustomZone.runUnary (dart:async/zone.dart:1429:19)
<asynchronous suspension>
#4 ForwardingFile.copy (package:file/src/forwarding/forwarding_file.dart:29:51)
<asynchronous suspension>
#5 ForwardingFile.copy (package:file/src/forwarding/forwarding_file.dart:29:51)
<asynchronous suspension>
#6 copyAssets.<anonymous closure> (package:flutter_tools/src/build_system/targets/assets.dart:164:13)
<asynchronous suspension>
#7 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#8 copyAssets (package:flutter_tools/src/build_system/targets/assets.dart:111:3)
<asynchronous suspension>
#9 CopyFlutterAssets.build (package:flutterpi_tool/src/build_system/targets.dart:536:21)
<asynchronous suspension>
#10 _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:895:9)
<asynchronous suspension>
#11 Future.wait.<anonymous closure> (dart:async/future.dart:546:21)
<asynchronous suspension>
#12 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:833:32)
<asynchronous suspension>
#13 FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:653:16)
<asynchronous suspension>
#14 AppBuilder.build (package:flutterpi_tool/src/build_system/build_app.dart:134:22)
<asynchronous suspension>
#15 BuildCommand.runCommand (package:flutterpi_tool/src/cli/commands/build.dart:174:5)
<asynchronous suspension>
#16 FlutterpiCommandMixin.run.<anonymous closure> (package:flutterpi_tool/src/cli/flutterpi_command.dart:448:7)
<asynchronous suspension>
#17 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#18 FlutterpiCommandMixin.run (package:flutterpi_tool/src/cli/flutterpi_command.dart:439:12)
<asynchronous suspension>
#19 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#20 main.<anonymous closure> (package:flutterpi_tool/src/executable.dart:60:9)
<asynchronous suspension>
#21 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#22 runInContext (package:flutterpi_tool/src/context.dart:26:10)
<asynchronous suspension>
#23 main (package:flutterpi_tool/src/executable.dart:57:3)
<asynchronous suspension>
#24 main (file:///C:/Users/Test/AppData/Local/Pub/Cache/hosted/pub.dev/flutterpi_tool-0.10.1/bin/flutterpi_tool.dart:4:3)
<asynchronous suspension>
Building Flutter-Pi bundle...
Failed to build bundle.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
DonatelloX commentedon Feb 6, 2026
Flutter 3.38.x introduced native assets support that calls cCompilerConfigLinux() even when cross-compiling from Windows. This function uses the which command (Linux-only) to find clang++, which doesn't exist on Windows.
Edit the file:
<Flutter SDK>/packages/flutter_tools/lib/src/isolated/native_assets/linux/native_assets.dartAdd an early return at the beginning of the cCompilerConfigLinux() function:
Delete these two files from /bin/cache/:
flutter_tools.stamp
flutter_tools.snapshot
ardera commentedon Feb 6, 2026
Thanks for the report, I'll fix this ASAP, and maybe add a CI test for windows
ardera commentedon Feb 7, 2026
Ah, I thought this was broken in general; it's just apps with native assets it seems
Your change does not really fix it though, unfortunately. It'll just skip the native asset from being built, so you'll then just have errors at runtime instead. calling cCompilerConfigLinux should be correct, as it's trying to build for linux
@DonatelloX Do you know which package it is that has native assets, in your dependency tree?
I can implement some custom lookup logic so you can at least try cross-compiling with mingw on windows.
DonatelloX commentedon Feb 8, 2026
@ardera there are native assets in my dependency tree:
path_provider_foundationandobjective_care only used for iOS/macOS.The workaround is safe for my specific use case. I understand this isn't a proper fix for the general case. If you implement MinGW cross-compilation support, that would be the correct solution for proper native asset compilation from Windows to Linux. Thank you.
ardera commentedon Feb 9, 2026
@DonatelloX ah okay, so it already looks up the cCompilerConfig, even if it's never used
in that case you're absolutely right, it's fine to skip it
I'm working on a PR here to fix it: #86
webbrain-one commentedon Aug 10, 2026
Hi!
I've just opened #98 to fix this. It resolves the Windows build failure caused by the tool calling the
whichcommand, which isn't available on Windows.Thanks for reporting this! 🐧💻