# Debugging common issues

This section provides details and solutions for issues related to apps not launching, slow video rendering, and video playback performance issues.

## App not launching or facing errors during launch

### DLL missing errors

- Issue: DLL missing errors (e.g., `MSVCP140.dll is missing` or `VCRUNTIME140.dll not found`).
- Details: These errors indicate that the application can’t find the necessary runtime libraries required for execution. This typically happens when the Microsoft Visual C++ Redistributable package isn’t installed on the system. Without these libraries, the application fails to launch or crashes during startup.
- Solution: Install the Redistributable C++ for x64, x86, and Arm64. This package includes the necessary DLL files that the application needs to run properly.

* * *

### MSVC build failures

- Issue: MSVC build failures: `MSBuild error MSB8020: The build tools for ARM64EC (Platform Toolset = 'v143') can't be found`
- Details: If the “Desktop Development with C++ workload” isn’t installed, developers may encounter several issues during compilation, such as:

> 
> 
> - Build failures- Errors like `MSBuild error MSB8020: The build tools for ARM64EC (Platform Toolset = 'v143') can't be found.` This error indicates that the necessary toolsets for  aren’t available.
>     - Compilation errors- Errors like `fatal error C1083: Can't open include file: 'iostream': No such file or directory.` This error occurs because the standard C++ libraries aren’t installed.
>     - Runtime errors- Applications may fail to run due to missing dependencies or incorrect configurations.
- Solution: Install Visual Studio 2022 (v17.4 or later) and ensure that the required workloads, such as “Desktop Development with C++,”” are installed. This setup provides the necessary tools and configurations to develop and build applications for Arm64EC.

* * *

### Address inconsistency, linker errors, and runtime errors

- Issue: Address inconsistency of exported functions across different DLLs causing app launch crashes during runtime.
- Details: If exported functions aren’t marked with `__declspec(hybrid_patchable)` when building for Arm64EC, developers may encounter several issues during compilation and runtime, such as:

> 
> 
> - Address inconsistency-  Function pointer addresses may vary across modules, leading to unreliable behavior.
>     - Linker errors- Functions imported from DLLs may have inconsistent addresses, causing errors like `LNK2019: unresolved external symbol` or `LNK2001: unresolved external symbol`.
>     - Runtime errors- Applications may fail to locate the correct function addresses, leading to runtime errors and crashes.
- Solution: Ensure that exported functions are marked correctly when building for Arm64EC. For example, use `__declspec(hybrid_patchable)` for functions that need special treatment.

* * *

### fatal error C1083

- Issue: Build error: `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory` when compiling for Arm64EC.
- Details: If the environment variables `CFLAGS` and `CXXFLAGS` aren’t set correctly, developers may encounter several issues during compilation, such as:

> 
> 
> - Incorrect compiler flags- The compiler may use default or incorrect flags, leading to build failures.
>     - Build failures- Errors like `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory` may occur because the ARM-specific headers aren’t included.
- Solution: Ensure that the environment variables are set correctly in the CMakePresets configuration. For example:

> 
> 
> set CXXFLAGS=arm64EC
>         set CFLAGS=arm64EC
>         Copy to clipboard

* * *

### MSVC linker errors

- Issue: MSVC linker errors: `LINK : fatal error LNK1112: module machine type 'ARM64EC' conflicts with target machine type 'x64'`
- Details: If developers use the wrong command prompt, they may encounter several issues during compilation, such as:

> 
> 
> - Build failures- Errors like `cl.exe isn't recognized as an internal or external command, operable program or batch file` may occur because the environment isn’t set up correctly.
>     - Linker errors- Errors like `LINK : fatal error LNK1112: module machine type 'ARM64EC' conflicts with target machine type 'x64'` may occur because the object files compiled for Arm64EC are incompatible with the x64 linker settings.
- Solution: Use the Arm64 developer command prompt for compiling and linking source files for Arm64EC. Run the `cl` and `link` commands with the appropriate switches:

> 
> 
> cl /arm64EC /c <args>
>         link /MACHINE:ARM64EC <args>
>         Copy to clipboard

* * *

### Complication errors with x64 cl.exe

- Issue: MSVC compilation errors due to using x64 cl.exe for Arm64EC codebase
- Details: If developers use the x64 cl.exe for Arm64EC compilation, they may encounter several errors, such as:

> 
> 
> - `cl.exe isn't recognized as an internal or external command, operable program or batch file.`
>     - > 
> > 
> > - Explanation- This error occurs because the x64 environment doesn’t recognize the /arm64EC flag, which is specific to the Arm64EC environment.
> 
> 
> 
> 
> - `LINK : fatal error LNK1104: can't open file 'MSCOREE.lib'`
>     - - Explanation- This error indicates that the linker can’t find the required libraries. The x64 environment doesn’t set up the paths to these libraries.
> 
> - `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory`
>     - - Explanation- This error occurs because the x64 environment doesn’t include the ARM-specific headers required for Arm64EC compilation.
- Solution: Run the command `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat arm64`.

* * *

### Compilation error C1189

- Issue: Compilation error:  `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\emmintrin.h(24,1): error C1189: #error: this header should only be included through <intrin.h>`
- Details: These headers are specific to x86 and x64 architectures and contain single instruction, multiple data (SIMD) intrinsics that aren’t compatible with Arm64EC. If these headers are used, developers may encounter several issues during compilation for Arm64EC, such as:

    - Compilation Errors- Errors like `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\emmintrin.h(24,1): error C1189: #error: this header should only be included through <intrin.h>` may occur because these headers aren’t available for Arm64EC.
    - Runtime Errors- Applications may fail to run correctly due to missing or incompatible SIMD instructions.
- Solution: Replace all instances of `emmintrin.h, smmintrin.h, xmmintrin.h,` and `tmmintrin.h` with `intrin.h`. The `intrin.h` header provides a unified interface for intrinsics that are compatible with Arm64EC.

    The `intrin.h` header file is available in MSVC and doesn’t need to be downloaded separately. It is included with the Microsoft C/C++ compiler and can be found in `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<version>\include\intrin.h`. Replace &lt;version&gt; with the specific version number of the MSVC tools installed on your system.

* * *

### Graphics app launch issues

- Issue: Graphics app launch issues related to OpenCL and OpenGL.
- Details: If the OpenCL and OpenGL Compatibility Pack isn’t installed, developers may encounter several issues during application launch, such as:

> 
> 
> - Launch failures- Graphics applications may fail to launch or crash during startup.

- Solution: Download the OpenCL and OpenGL Compatibility Pack from the [Microsoft Store](https://apps.microsoft.com/detail/9NQPSL29BFFF?hl=en-us&amp;gl=US&amp;ocid=pdpshare). This pack provides the necessary compatibility layers to ensure that graphics applications run smoothly on WoS device.

* * *

### AVX instruction set

- Issue: Application requiring AVX instruction set support failing to launch.
- Details: Some applications require advanced vector extensions (AVX) instruction set support and if it isn’t available, developers may encounter several issues, such as:

> 
> 
> - Application crashes- The application may crash during execution due to missing AVX instructions.
>     - Incorrect behavior- The application may exhibit unexpected behavior or fail to perform certain tasks that rely on AVX instructions.
- Solution: Switch to the Windows Canary release. The Canary build supports a subset of AVX instructions, meaning it includes support for some, but not all, AVX instructions. This provides a potential solution, though it may not guarantee full functionality. It’s a viable option to explore for resolving AVX-related issues.

* * *

## Slow video export and render operations

- Issue: For graphics applications that involve video export and video rendering, the export or render operation can be slow.
- Solution: Increase the speed by putting the laptop in performance mode. This can be done by following these steps:

> 
> 
> 1. Go to the “Settings” from the Start menu shortcut or by pressing “Windows” and “I” together.
>     2. Click “System” and then select “Power & battery.”
>     3. Find the option labeled “Power mode” and click the drop-down menu. Set the mode to “Best performance.”

* * *

## Enabling hardware acceleration in video streaming apps

- Issue: Video playback performance issues in video streaming apps.
- Solution: Check the app settings. Most video streaming apps have a settings menu where you can enable or disable hardware acceleration. Look for options related to video playback, performance, or advanced settings. Enabling hardware acceleration can improve video playback performance by offloading tasks to the GPU, reducing CPU usage, and providing a smoother viewing experience.

Last Published: Jun 16, 2026

[Previous Topic
System-wide app conflicts](https://docs.qualcomm.com/bundle/publicresource/80-62010-1/topics/debug-app-conflicts.md) [Next Topic
LLVM Compiler](https://docs.qualcomm.com/bundle/publicresource/80-62010-1/topics/llvm-compiler.md)