[완료]터보C에서 include가 안되고 있습니다.

bartsesang의 이미지

지금 'C로 배우는 알고리즘'을 보고 있습니다. 이 책이 dos 환경의 터보c를 바탕으로 쓰여져 VS 6.0에서는 지원하지 않는 헤더파일이 있네요. 이전 소스의 경우 인터넷에서 이것 저것 찾아서 api 명령어를 통해 어느 정도 처리를 했지만, 계속 이렇게 하다보면 윈도우 프로그래밍도, 도스 프로그래밍도 아닌 잡종 소스가 될 것 같습니다. 어짜피 알고리즘을 배운다고 생각한다면, 또한 지금 API도 같이 하기 때문에 API 함수를 찾아 보는 것도 괜찮다고 생각은 들지만 책에 있는 내용을 그대로 따르고 싶습니다.

그래서 터보C를 새로 설치하여 컴파일을 해보았는데 몇가지 문제가 있습니다.

3.1 for win 버전과 3.0 for dos 버전을 깔았는데 dos버전에서는 한글 지원이 미흡하다는 점입니다. 배치파일에서 chcp 437와 hcode /k의 명령을 사용해 보았지만 글자가 깨지거나 잔상이 남아 있는 문제가 생겨 영어 환경을 그대로 쓰려고 합니다. 두 버전에 있어 차이가 없다면 win 버전을 사용할 생각입니다. - bioskey 와 같은 명령은 윈도우에서 사용이 안된다고 하던데, 아직 컴파일이 되지 않아 확인은 못했습니다.

컴파일에 있어 가장 문제점은 conio.h와 사용자 정의 헤더 "key.h"가 include 되지 않는다는 점입니다. getch() 명령은 받는 것을 보니 아예 안되는 것 같지는 않지만 enum으로 정의되어 있는 색상 상수가 인식이 되지 않습니다. VS6.0에서 터보C의 conio.h를 불러들이면 이 에러는 뜨지 않았습니다.
그리고 key.h의 경우 절대 경로를 사용하면 이상이 없지만 그냥 "key.h"를 사용하게 되면 인식을 하지 못하는데, 터보C에서 기본 폴더는 어디인지 궁금합니다.

참고로 C:\TCWIN\TCexam 폴더에 소스 파일과 key.h가 함께 있으며 터보C 3.1 for win은 C:\TCWIN 폴더에 설치되어 있습니다.

+ 10:40
3.1에서의 폴더 설정은 이상 없고, 소스 파일과 key.h는 같은 폴더에 있습니다. 혹시나 싶어 2.0을 새로 설치하여 폴더 설정을 하고, 컴파일을 하니 3.1과 같은 에러가 나는 군요. 스크린샷을 포함합니다.
3.1에서 나던 conio.h의 색상 상수에 대한 에러는 없고, key.h가 인식 안되는 에러만 남았습니다. 절대경로를 써주니.. 이젠 링크드 리스트에 대한 에러가 주욱~ 뜨네요..

+ 13:00
컴파일 완료 했습니다. 문제는 주석이더군요. // 이 주석을 지워주니 컴파일 되었습니다. 아직 해결 안된 문제는 key.h 입니다. 이 녀석을 c:\tc20 에 넣어주면 그냥 "key.h"로도 실행되지만 그렇지 않은 경우에는 절대경로를 모두 써줘야 되네요. 상대경로도 안먹힙니다.
이 부분이 해결 되지 않으면 일일이 탐색기로 바꿔줘야 겠네요. 주석도 일일이 지우기 힘들겠네..

File attachments: 
첨부파일 크기
Image icon TurboC.jpg171.64 KB
Package icon TCexam.zip2.85 KB
Image icon TC ERROR.jpg186.87 KB
cppig1995의 이미지

C로 배우는 알고리즘을 보시면 graphics.h를 꽤 사용하고 있습니다.
따라서 Turbo C++ for Windows는 사용할 수 없습니다.

1. 디렉토리 설정
Turbo C++ 3.0(DOS)는 모르겠지만, Turbo C 2.0(2.01)과 같다면,
Options - Directories에서 설정을 바꿔 주시면 사용할 수 있을 겁니다.

2. 헤더 파일
쌍따옴표 사용시에는 소스 파일(.c)이 있는 폴더에서 검색하고,
부등호 사용시에는 Options - Directories의 Includes에 정해진 대로입니다.



It's High Noon...

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

cppig1995의 이미지

tc.exe가 있는 디렉토리에 넣어보셨나요?



It's High Noon...

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

shyblue의 이미지

SET INCLUDE=C:\TCWIN\TCexam;C:\TCWIN\INCLUDE
SET LIB=C:\TCWIN\Library

이정도의 환경변수를 등록해 보시는것이 좋을것 같습니다.

時日也放聲大哭

익명 사용자의 이미지

인터럽트 벡터 후킹부터 DMA를 제외한 인터럽트 핸들링을 할 수 있습니다.
(DMA는 VM86 모드에서 발생하는 IO Exception을 후킹하는 핸들러를 설치해서 Windows Driver 차원에서 처리하면 됩니다만... 이것부터는 Windows System Programming 영역이니 논외로 해야겠죠)
BIOS, DOS 인터럽트는 모두 기존 방식대로 쓸 수 있습니다.

bartsesang의 이미지

INCLUDE
C:\TC20\TCexam;C:\TC20\INCLUDE
library
C:\TC20\TCexam;C:\TC20\Library

을 사용해서 "key.h"를 include 하는데 성공했습니다. 기본 폴더는 tc.exe 파일이 있는 폴더네요. 알고나니 정말 간단한건데... 이런 삽질이 내공 향상에 도움이 되는지 모르겠습니다. 프로그램은 아무 생각 없이 최신으로 사용하는 것이 좋다고 생각했는데, 제가 중학교 때 처음 만져봤던 프로그램을 지금에서야 다시 시작하네요. 그때 사두고 안봤던 책을 지금 보고 있습니다. 그래도 재미를 느끼고 한다는 것이 즐겁네요.

하나를 알면 열이 궁금해요.. 털썩... OTL

shyblue의 이미지

기본은 언제나 중요합니다. 무엇을 하든지 기초가 탄탄해야지요.
gcc를 하던 ms vc를 하던 Include path와 library path는 기본입니다.
각각의 컴파일러나 환경에서 header와 library를 참조하는 방법에 차이가 조금 있을 뿐인것이죠.
너무 Visual계열의 IDE에만 익숙하다보면, 환경 변수의 중요성을 잊어버릴때가 있습니다.
결국 DOS든 Unix/Linux 계열의 shell 환경이든 환경변수가 우선 적용되고, 그 다음이 명령어 라인입니다.

성공하셨다니 다행이군요 ^^

時日也放聲大哭

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.