# Gỡ lỗi

Phần này cung cấp thông tin chi tiết và giải pháp cho các sự cố liên quan đến ứng dụng không khởi chạy, hiển thị video chậm và vấn đề hiệu suất phát video.

## Ứng dụng không khởi chạy hoặc gặp lỗi trong quá trình khởi chạy

### Lỗi thiếu DLL

- Sự cố: Lỗi thiếu DLL (ví dụ: `MSVCP140.dll is missing` hoặc `VCRUNTIME140.dll not found`).
- Chi tiết: Những lỗi này chỉ ra rằng ứng dụng không thể tìm thấy các thư viện runtime cần thiết để thực thi. Lỗi này thường xảy ra khi gói Microsoft Visual C++ Redistributable không được cài đặt trên hệ thống. Nếu không có các thư viện này, ứng dụng sẽ không khởi chạy được hoặc gặp lỗi trong quá trình khởi động.
- Giải pháp: Cài đặt Redistributable C++ cho x64, x86 và Arm64. Gói này bao gồm các tệp DLL cần thiết để ứng dụng chạy bình thường.

* * *

### Lỗi bản build MSVC

- Sự cố: Lỗi bản build MSVC: `MSBuild error MSB8020: The build tools for ARM64EC (Platform Toolset = 'v143') can't be found`
- Chi tiết: Nếu "Desktop Development with C++ workload" không được cài đặt, nhà phát triển có thể gặp phải một số vấn đề trong quá trình biên dịch, chẳng hạn như:

> 
> 
> - Lỗi bản build- Các lỗi như `MSBuild error MSB8020: The build tools for ARM64EC (Platform Toolset = 'v143') can't be found.` Lỗi này cho biết rằng các bộ công cụ cần thiết không có sẵn.
>     - Lỗi biên dịch - Các lỗi như `fatal error C1083: Can't open include file: 'iostream': No such file or directory.` Lỗi này xảy ra do các thư viện C++ chuẩn không được cài đặt.
>     - Lỗi runtime - Các ứng dụng có thể không chạy được do thiếu phần phụ thuộc hoặc cấu hình không chính xác.
- Giải pháp: Cài đặt Visual Studio 2022 (v17.4 trở lên) và đảm bảo rằng các khối lượng công việc cần thiết, chẳng hạn như "Desktop Development with C++" đã được cài đặt. Thiết lập này cung cấp các công cụ và cấu hình cần thiết để phát triển và build các ứng dụng cho Arm64EC.

* * *

### Sự không nhất quán về địa chỉ, lỗi trình liên kết và lỗi runtime

- Sự cố: Sự không nhất quán về địa chỉ của các hàm được xuất giữa các DLL khác nhau gây ra lỗi khi khởi chạy ứng dụng trong quá trình chạy.
- Chi tiết: Nếu các hàm đã xuất không được đánh dấu bằng `__declspec(hybrid_patchable)` khi build cho Arm64EC, nhà phát triển có thể gặp phải một số sự cố trong quá trình biên dịch và chạy, chẳng hạn như:

> 
> 
> - Địa chỉ không nhất quán - Địa chỉ con trỏ hàm có thể khác nhau giữa các mô-đun, dẫn đến hành vi không đáng tin cậy.
>     - Lỗi trình liên kết - Các hàm được nhập từ DLL có thể có địa chỉ không nhất quán, gây ra các lỗi như `LNK2019: unresolved external symbol` hoặc `LNK2001: unresolved external symbol`.
>     - Lỗi runtime - Các ứng dụng có thể không xác định được địa chỉ hàm chính xác, dẫn đến lỗi runtime và crash.
- Giải pháp: Đảm bảo rằng các hàm được xuất được đánh dấu chính xác khi build cho Arm64EC. Ví dụ: dùng `__declspec(hybrid_patchable)` cho các hàm cần xử lý đặc biệt.

* * *

### fatal error C1083

- Sự cố: Lỗi bản build: `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory` khi biên dịch cho Arm64EC.
- Chi tiết: Nếu các biến môi trường `CFLAGS` và `CXXFLAGS` không được thiết lập chính xác, nhà phát triển có thể gặp phải một số vấn đề trong quá trình biên dịch, chẳng hạn như:

> 
> 
> - Cờ trình biên dịch không chính xác - Trình biên dịch có thể sử dụng cờ mặc định hoặc cờ không chính xác, dẫn đến lỗi build.
>     - Lỗi build- Các lỗi như `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory` có thể xảy ra do các header dành riêng cho ARM không được bao gồm.
- Giải pháp: Đảm bảo rằng các biến môi trường được thiết lập chính xác trong cấu hình CMakePresets. Ví dụ:

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

* * *

### Lỗi trình liên kết MSVC

- Sự cố: Lỗi trình liên kết MSVC: `LINK : fatal error LNK1112: module machine type 'ARM64EC' conflicts with target machine type 'x64'`
- Chi tiết: Nếu nhà phát triển dùng cửa sổ dòng lệnh không phù hợp, họ có thể gặp phải một số vấn đề trong quá trình biên dịch, chẳng hạn như:

> 
> 
> - Lỗi build - Các lỗi như `cl.exe isn't recognized as an internal or external command, operable program or batch file` có thể xảy ra do môi trường không được thiết lập đúng cách.
>     - Lỗi trình liên kết - Các lỗi như `LINK : fatal error LNK1112: module machine type 'ARM64EC' conflicts with target machine type 'x64'` có thể xảy ra do các tệp đối tượng được biên dịch cho Arm64EC không tương thích với cài đặt trình liên kết x64.
- Giải pháp: Dùng cửa sổ dòng lệnh dành cho nhà phát triển Arm64 để biên dịch và liên kết các tệp nguồn cho Arm64EC. Chạy lệnh `cl` và `link` với các tùy chọn (switch) thích hợp:

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

* * *

### Lỗi biên dịch với x64 cl.exe

- Sự cố: Lỗi biên dịch MSVC do dùng x64 cl.exe cho cơ sở mã Arm64EC
- Chi tiết: Nếu nhà phát triển dùng x64 cl.exe để biên dịch Arm64EC, họ có thể gặp phải một số lỗi, chẳng hạn như:

> 
> 
> - `cl.exe isn't recognized as an internal or external command, operable program or batch file.`
>     - > 
> > 
> > - Giải thích - Lỗi này xảy ra vì môi trường x64 không nhận dạng được cờ /arm64EC, cờ này dành riêng cho môi trường Arm64EC.
> 
> 
> 
> 
> - `LINK : fatal error LNK1104: can't open file 'MSCOREE.lib'`
>     - - Giải thích - Lỗi này chỉ ra rằng trình liên kết không tìm thấy các thư viện cần thiết. Môi trường x64 không thiết lập đường dẫn đến các thư viện này.
> 
> - `fatal error C1083: Can't open include file: 'arm_neon.h': No such file or directory`
>     - - Giải thích - Lỗi này xảy ra vì môi trường x64 không bao gồm các header dành riêng cho ARM cần thiết để biên dịch Arm64EC.
- Giải pháp: Chạy lệnh `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat arm64`.

* * *

### Lỗi biên dịch C1189

- Sự cố: Lỗi biên dịch:  `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>`
- Chi tiết: Các header này dành riêng cho kiến​ trúc x86 và x64 và chứa các hàm intrinsic một lệnh, nhiều dữ liệu (SIMD) không tương thích với Arm64EC. Nếu dùng các tiêu đề này, các nhà phát triển có thể gặp phải một số vấn đề trong quá trình biên dịch cho Arm64EC, chẳng hạn như:

    - Lỗi biên dịch - Các lỗi như `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>` có thể xảy ra vì các header này không có sẵn cho Arm64EC.
    - Lỗi runtime - Các ứng dụng có thể không chạy đúng cách do các lệnh SIMD bị thiếu hoặc không tương thích.
- Giải pháp: Thay tất cả các trường hợp `emmintrin.h, smmintrin.h, xmmintrin.h,` và `tmmintrin.h` bằng `intrin.h`. Header `intrin.h` cung cấp giao diện thống nhất cho các hàm intrinsic tương thích với Arm64EC.

    Tệp header `intrin.h` có sẵn trong MSVC và không cần phải tải xuống riêng. Tệp này có trong trình biên dịch Microsoft C/C++ và có thể tìm thấy trong `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<version>\include\intrin.h`. Thay &lt;version&gt; bằng số phiên bản cụ thể của các công cụ MSVC được cài đặt trên hệ thống của bạn.

* * *

### Sự cố khởi chạy ứng dụng đồ họa

- Sự cố: Các sự cố khởi chạy ứng dụng đồ họa liên quan đến OpenCL và OpenGL.
- Chi tiết: Nếu OpenCL và OpenGL Compatibility Pack không được cài đặt, nhà phát triển có thể gặp phải một số vấn đề trong quá trình khởi chạy ứng dụng, chẳng hạn như:

> 
> 
> - Lỗi khởi chạy - Ứng dụng đồ họa có thể không khởi chạy hoặc gặp lỗi trong quá trình khởi động.

- Giải pháp: Tải xuống OpenCL và OpenGL Compatibility Pack từ [Microsoft Store](https://apps.microsoft.com/detail/9NQPSL29BFFF?hl=en-us&amp;gl=US&amp;ocid=pdpshare). Gói này cung cấp các lớp tương thích cần thiết để đảm bảo các ứng dụng đồ họa chạy trơn tru trên thiết bị WoS.

* * *

### Tập lệnh AVX

- Sự cố: Ứng dụng yêu cầu hỗ trợ tập lệnh AVX Không khởi chạy được
- Chi tiết: Một số ứng dụng yêu cầu hỗ trợ tập lệnh phần mở rộng vectơ nâng cao (AVX), nếu không, nhà phát triển có thể gặp phải một số sự cố, chẳng hạn như:

> 
> 
> - Ứng dụng bị sập- Ứng dụng có thể gặp lỗi trong khi thực thi do thiếu lệnh AVX.
>     - Hành vi không chính xác - Ứng dụng có thể biểu hiện hành vi không mong muốn hoặc không thực hiện được một số tác vụ dựa trên lệnh AVX.
- Giải pháp: Chuyển sang bản phát hành Windows Canary. Bản build Canary hỗ trợ một tập hợp con các lệnh AVX, nghĩa là nó hỗ trợ cho một số lệnh AVX nhưng không phải tất cả. Bản build này mang đến một giải pháp tiềm năng, dù có thể không đảm bảo đầy đủ chức năng. Đây là một tùy chọn khả thi để giải quyết các vấn đề liên quan đến AVX.

* * *

## Thao tác xuất và kết xuất video chậm

- Sự cố: Đối với các ứng dụng đồ họa liên quan đến xuất video và kết xuất video, thao tác xuất hoặc kết xuất có thể chậm.
- Giải pháp: Tăng tốc độ bằng cách đặt máy tính xách tay ở chế độ hiệu suất. Bạn có thể thực hiện theo các bước sau:

> 
> 
> 1. Vào phần "Settings" từ phím tắt menu Bắt đầu hoặc nhấn tổ hợp phím "Windows" và "I".
>     2. Nhấp vào "System" rồi chọn "Power & battery".
>     3. Tìm tùy chọn có nhãn "Power mode" và nhấp vào menu thả xuống. Đặt chế độ thành "Best performance".

* * *

## Bật tăng tốc phần cứng trong các ứng dụng phát trực tuyến video

- Sự cố: Các vấn đề về hiệu suất phát video trong các ứng dụng phát trực tuyến video.
- Giải pháp: Kiểm tra cài đặt ứng dụng. Hầu hết các ứng dụng phát trực tuyến video đều có menu cài đặt nơi bạn có thể bật hoặc tắt tính năng tăng tốc phần cứng. Tìm kiếm các tùy chọn liên quan đến phát video, hiệu suất hoặc cài đặt nâng cao. Bật tính năng tăng tốc phần cứng có thể cải thiện hiệu suất phát video bằng cách chuyển tải các tác vụ sang GPU, giảm mức sử dụng CPU và mang lại trải nghiệm xem mượt mà hơn.

Last Published: Dec 16, 2025

[Previous Topic
Tham khảo](https://docs.qualcomm.com/bundle/publicresource/80-62010-1VI/topics/references.md) [Next Topic
Phát triển ứng dụng AI](https://docs.qualcomm.com/bundle/publicresource/80-62010-1VI/topics/ai-app-development.md)