이상하게 잘 기억이 되지 않는다 . 이참에 여기에 적어 놔야겠다
필자의 환경은 오직 리눅스만 깔려있는 컴퓨터이다. 리눅스 밀고 윈도 깔려니 윈도 설치cd가 안먹힐때 아예 파티션들을 다 날리는 방법이다.

우분투 cd의 복구 모드로 부팅해서 fdisk -l (소문자L)로 현재 자신이 가지고 있는 파티션의 번호들을 알아놓고
fdisk /dev/sda 또는 fdisk /dev/hda를 입력한다.
이후 d라는 명령어는 파티션 삭제 명령어로서 아까 봐놨던 파티션번호를 입력해서 파티션 날리고 w로 저장후 재부팅.
이후 윈도우 cd로 부팅해서 윈도우 다시깔면된다.
AND

About link errors

asm 2010. 7. 15. 02:01

Linker Errors LNK1190 to LNK1581

Linker Tools Error LNK1190
invalid fixup found, type type
The object file has become corrupted. Recompile.

Linker Tools Error LNK1194
cannot delay-load dll name due to import of data symbol symbol name; relink without /DELAYLOAD:dll name
You cannot delay load a DLL if data is imported from it.

Linker Tools Error LNK1195
target machine "machine" requires "option"
Add the required option.

Linker Tools Error LNK1196
invalid or corrupt import object: unknown version
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1197
invalid or corrupt import object: unknown type
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1198
invalid or corrupt import object: unknown name type
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1199
invalid or corrupt import object: non-zero reserved fields
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1200
error reading program database "filename"
The given program database (PDB) could not be read, probably because it is corrupted. If filename is the PDB for an object file, recompile the object file; use the /debug:full and /pdbfile options. If filename is the PDB for the main output file and this error occurred during an incremental link, delete the PDB and relink.

Linker Tools Error LNK1201
error writing to program database "filename"; check for insufficient disk space
LINK could not write to the program database (PDB) for the output file. One of the following may be a cause:

  • The file is corrupted. Delete filename and relink.
  • There was not enough disk space to write to the file.
  • The drive being written to was not available, possibly due to a network problem.

Linker Tools Error LNK1202
"filename" missing debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.

Linker Tools Error LNK1203
"filename" missing current debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.

Linker Tools Error LNK1204
"filename" compiled /Yc /Yu /Z7; cannot create PDB; recompile with /Zi
Multilayered program databases (PDBs) are not supported in combination with old-style debugging information. Recompile using CL's /Zi option.

Linker Tools Error LNK1206
cannot overwrite Visual C++ 1.0 PDB "filename"; delete and rebuild
This version of LINK cannot write to an existing program database (PDB) created using older versions of the visual development environment. Delete filename and rebuild.

Linker Tools Error LNK1207
incompatible PDB format in "filename"; delete and rebuild
This version of LINK cannot write to the existing program database (PDB). Delete filename and rebuild.

Linker Tools Error LNK1209
program database "filename" differs from previous link; relink or rebuild
The given program database (PDB) is invalid and possibly corrupt. Relink. If filename is also the PDB for an object file, recompile to recreate the PDB.

Linker Tools Error LNK1210
insufficient memory for incremental link; relink with /INCREMENTAL:NO
There was not enough virtual memory available for LINK to create the incremental status (.ILK) file.

Linker Tools Error LNK1211
precompiled type information not found; "filename" not linked or overwritten
The given object file, compiled with /Yc, either was not specified in the LINK command or was overwritten.

Linker Tools Error LNK1212
error opening program database; file is in use
The PDB is already in use by another application.

Linker Tools Error LNK1213
unexpected import object encountered
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1221
a subsystem can't be inferred and must be defined
The linker does not have enough information to infer which subsystem you will target your application. To fix this error, use the /SUBSYSTEM option.

Linker Tools Error LNK1561
entry point must be defined
The symbol specified by the /ENTRY option is not defined.

Linker Tools Error LNK1581
corrupted object or old compiler (bad Pcode entry point)
Your object file contained a bad entry point. The object file is probably corrupt. See Corrupt Object File for more information.


'asm' 카테고리의 다른 글

어셈을 시작하며  (0) 2010.08.27
NASM, MASM 차이  (1) 2010.08.13
segment:offset  (0) 2010.07.07
AND

segment:offset

asm 2010. 7. 7. 00:42
지금은뭐 32bit니 64bit 하지만 기본적인 개념을 잡고자 설명해보도록한다.

x86의 초기모델인 8086은 8086 은 내부적으로 16비트의 레지스터를 사용한다.
따라서 CPU 내부 구조는 16 bit 레지스터를 사용하고 있었으므로 최대 2^16인 65536 Byte, 즉 64KB의 메모리밖에 사용할 수 없다.
이에 인텔은 세그먼트와 오프셋이라는 개념을 도입해서 16 bit 레지스터를 이용해 20 bit를 가리킬 수 있도록 하였다.
즉 2^20인 1Mbyte를 사용할 수 있게 되었다.

Segment : Offset 과 같이 쓰며, 이렇게 표시되어있는 논리주소는 세그먼트를 4bit 시프트하고, 거기에 오프셋을 더해 물리주소로 변환한다.  --> 20비트 사용

예를들어 0x1000:0x2345 이라면 0x1000을 4bit 왼쪽으로 시프트(2^4 = 16) 16진수로는 자릿수 0을 더해서 거기에 오프셋 값을 더해  0x10000 + 0x2345 = 0x12345 이 된다.

이 방법을 통해서 0x00000 부터 최대 0xFFFFF 까지 1MB의 메모리를 사용할 수 있게 되었다. 따라서 하나의 세그먼트의 크기는 64KB가 되며, 이 세그먼트부터 다음 세그먼트 사이에 존재하는 주소에 접근하기 위해서 오프셋을 사용한다.

'asm' 카테고리의 다른 글

어셈을 시작하며  (0) 2010.08.27
NASM, MASM 차이  (1) 2010.08.13
About link errors  (0) 2010.07.15
AND