c++ 컴파일 오류에 대해서 질문이 있습니다.
글쓴이: k3rnel / 작성시간: 금, 2021/10/01 - 4:29오전
안녕하세요.
dev-c++ (version 4.9.9.2) 컴파일러에서 다음과 같은 코드를 컴파일하는 과정에서
아래와 같은 에러가 발생하였습니다.
c++ 기반 지식이 부족한 상태에서 구글링 검색을 통해서 얻은 코드인데
발생한 에러가 어떤 의미인지 파악을 못하고 있습니다.
어떻게 수정해야 될까요? 도움 부탁드립니다.
typedef vector<unsigned char=""> BinaryArray;
8 missing `>' to terminate the template argument list
8 template argument 1 is invalid
8 template argument 2 is invalid
8 expected unqualified-id before '=' token
8 expected `,' or `;' before '=' token
아래는 전체소스입니다.
#include <iostream> #include <fstream> #include <vector> #include <algorithm> #include <iomanip> using namespace std; typedef vector<unsigned char=""> BinaryArray; void usage(); bool read_binary(ifstream&, BinaryArray&); unsigned output_hex(BinaryArray const &, unsigned const); int main(int argc, char **argv) { if(argc < 2) { usage(); return -1; } ifstream fin(argv[1], ios_base::binary); if(!fin) { cerr << "failed to open file \"" << argv[1] << "\".\n"; return -1; } BinaryArray array; if(!read_binary(fin, array)) { cerr << "failed to parsed file \"" << argv[1] << "\".\n"; return -1; } unsigned count_per_line = 16; if(argc >= 3) count_per_line = atoi(argv[2]); cout << "//Reading \"" << argv[1] << "\"\n" << "//Size: " << array.size() << " bytes\n" << "//Count per line: " << count_per_line << "\n"; unsigned null_count = output_hex(array, count_per_line); cout << "//NULL count: " << null_count << '\n'; } unsigned output_hex(BinaryArray const &carr, unsigned const cpl) { unsigned null = 0; cout << "char code[] = \n\""; for(size_t i = 1; i <= carr.size(); ++i) { cout << "\\x" << hex << setw(2) << setfill('0') << (unsigned)(carr[i-1]); if(!(i % cpl)) { cout << "\"\n"; if(i < carr.size()) cout << '\"'; } if(!(carr[i-1])) ++null; } if(carr.size() % cpl) cout << '\"'; cout << ";\n"; return null; } bool read_binary(ifstream& fin, BinaryArray& arr) { try { unsigned file_length; fin.seekg(0, ios::end); file_length = fin.tellg(); fin.seekg(0, ios::beg); arr.resize(file_length); char *mem_buf = new char [file_length]; fin.read(mem_buf, file_length); copy(mem_buf, mem_buf+file_length, arr.begin()); delete [] mem_buf; } catch(...) {return false;} return true; } void usage() { cout << "Usage: fonReadbin <asm_bin_file> [count_per_line=16]\n" }
Forums:
typedef vector<unsigned char=
typedef vector<unsigned char=""> BinaryArray;
unsigned char
뒤에=""
이 왜 들어가 있나요? 그 세 글자를 지우고 다시 컴파일해 보세요.아울러 Dev-C++는 개발이 중단된지 오래되었고 거기에 들어 있는 컴파일러도 상당히 오래된 버전입니다. 다른 환경을 사용하기를 추천합니다.
답변 감사합니다.
말씀하신대로 char뒤에 ="" 이 부분을 지우고 하니 컴파일도 잘되고
생성된 실행파일도 정상적으로 잘 동작합니다. 감사합니다.
아울러 dev-c++에 대해서 조언해주신 부분도 감사합니다.
제가 개인적으로 오래된 환경에서 테스트할 상황이어서 dev-c++ 오래된 버전을 사용하고 있습니다.^^
감사합니다. 덕분에 짧은 시간안에 문제를 해결할 수 있었습니다. 감사합니다.
댓글 달기