1. undefined reference to ***
Đây là lỗi linker, Open khi linker không hề tìm thấy symbol đã được sử dụng. Thông thường nó hay xảy ra khi những hàm của một thư viện nào đó được sử dụng trong source code nhưng thư viện đó không được link .
Để thực hiện link một thư viện nào đó thì config như sau →
Với qmake
1 |
LIBS+=nameOfLib |
Với cmake
1 |
TARGET_LINK_LIBRARIES(targetnameOfLib) |
Lệnh g++
1 |
g++-omainmain.cpp-LdirOfLibrary-lnameOfLib |
1 |
g++-omainmain.ofunctionsModule.o |
2. error: *** was not declared in this scope
Lỗi này xảy ra khi một biến hoặc hàm không xác định nào đó được sử dụng.
— Trường hợp lỗi xảy ra với ‘biến’
Compiling error →
12345678910 |
#include intmain(intargc,char*argv[]) { { inti=2; } std::cout< return0; } |
Fix →
12345678910 |
#include intmain(intargc,char*argv[]) { { inti=2; std::cout< } return0; } |
— Trường hợp lỗi xảy ra với ‘hàm’
Thường xảy ra khi thiếu include header files (ví dụ sử dụng std::cout mà không có #include
Compiling error →
123456789101112 |
#include intmain(intargc,char*argv[]) { doCompile(); return0; Xem thêm: Tải app capcut cho máy tính tại nhà } voiddoCompile() { std::cout<<" No ! "< } |
Fix →
1234567891011121314 |
#include voiddoCompile();/ / forward declare the function intmain(intargc,char*argv[]) { doCompile(); return0; } voiddoCompile() { std::cout<<" No ! "< } |
hoặc
123456789101112 |
#include voiddoCompile()/ / define the function before using it { std::cout<<" No ! "< } intmain(intargc,char*argv[]) { doCompile(); return0; } |
Để thực thi link một thư viện nào đó thì config như sau → hoặc link trực tiếp bằng cách chỉ định file obiect như saufunctionsModule. o là file object chứa code của function được sử dụng bởi main. oLỗi này xảy ra khi một biến hoặc hàm không xác lập nào đó được sử dụng. Thường xảy ra khi thiếu include header files ( ví dụ sử dụngmà không có ) hoặc gọi hàm mà chưa có khai báo ( hoặc định nghĩa ) của hàm đó trước khi sử dụng, ví dụ :
Note: Về cơ bản compiler biên dịch code từ trên xuống dưới. Tất cả mọi thứ đều phải được khai báo (hoặc định nghĩa) trước khi sử dụng.
3. fatal error: ***: No such file or directory
Compiler không tìm thấy file. Ví dụ trong 1 file source có #include “someFile.h” nhưng compiler không tìm thấy file “someFile.h” đâu cả. Trường hợp này chúng ta cần bổ sung thông tin config để compiler có thể tìm thấy file cần thiết.
Với qmake
1 |
INCLUDEPATH+=dir/Of/File |
Với cmake
1 |
include_directories(dir/Of/File) |
Lệnh g++
1 |
g++-omainmain.cpp- Idir Xem thêm: Mách bạn cách tìm kiếm trong Word /Of/File |
— Phạm Minh Tuấn ( Shun ) —
Xem thêm:
Source: https://entechgadget.com
Category: Wiki