MFC 사용하다보면 자주 만나는 경고... 메시지.. 찾아보면 다음과 같이 해결책을 제시하고 있네...
[출처] http://msdn.microsoft.com/ko-kr/library/6wtdswk0(VS.80).aspx

링커 도구 경고 LNK4098
오류 메시지
'library' defaultlib가 다른 라이브러리와 충돌합니다. /NODEFAULTLIB:library를 사용하십시오.
defaultlib 'library' conflicts with use of other libs; use /NODEFAULTLIB:library
호환되지 않는 라이브러리에 링크하려고 했습니다.
Note참고

런타임 라이브러리에는 여러 형식이 혼합 사용되지 않도록 하는 지시문이 들어 있는데 여러 형식이나 디버그/비디버그 버전의 런타임 라이브러리를 동일한 프로그램에서 사용하려고 하면 이 경고가 발생합니다. 예를 들어, 어떤 종류의 런타임 라이브러리를 사용하는 파일을 컴파일하고 다른 종류의 런타임 라이브러리를 사용하는 파일을 컴파일한 다음(예: 단일 스레드 라이브러리와 다중 스레드 라이브러리) 이 둘을 링크시키려고 하면 이 경고가 발생합니다. 동일한 런타임 라이브러리를 사용하는 소스 파일을 컴파일해야 합니다. 자세한 내용은 런타임 라이브러리 사용(/MD/MT/LD) 컴파일러 옵션을 참조하십시오.

링커의 /VERBOSE:LIB 스위치를 사용하여 링커가 검색 중인 라이브러리를 확인할 수 있습니다. 예를 들어, LNK4098이 발생하여 단일 스레드된 비디버그 런타임 라이브러리를 사용하는 실행 파일을 만들려는 경우에는 /VERBOSE:LIB 옵션을 사용하여 링커에서 검색 중인 라이브러리를 확인하십시오. 링커는 검색한 라이브러리로 LIBC.lib를 출력하며 LIBCMT.lib, MSVCRT.lib, LIBCD.lib, LIBCMTD.lib 또는 MSVCRTD.lib는 출력하지 않습니다. 무시할 각 라이브러리에 대해 /NODEFAULTLIB를 사용하여 링커가 잘못된 런타임 라이브러리를 무시하도록 할 수 있습니다.

다음 표는 사용할 런타임 라이브러리에 따라 무시해야 하는 라이브러리를 보여 줍니다.

사용할 런타임 라이브러리무시해야 하는 라이브러리

단일 스레드(libc.lib)

libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

다중 스레드(libcmt.lib)

libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

DLL을 사용하는 다중 스레드(msvcrt.lib)

libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

디버그 단일 스레드(libcd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

디버그 다중 스레드(libcmtd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib

DLL을 사용하는 디버그 다중 스레드(msvcrtd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

예를 들어, 이 경고가 발생한 경우와 비디버그, 단일 스레드 버전의 런타임 라이브러리를 사용하는 실행 파일을 만들려는 경우에는 링커에 다음 옵션을 사용하면 됩니다.

/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

두 라이브러리를 사용하다보니 서로 변환할 일이 생겼다.. 그래서.. 구글 사마에게 물어보니 아래와 같은 답을 보여 주었다..

ARUint8 *dataPtr;
IplImage *image_opencv, *gray_opencv;

//ARToolkit→OpenCV
image_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 4);
memcpy(image_opencv->imageData, dataPtr, image_opencv->imageSize);

//何らかの処理
gray_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 1);
cvCvtColor(image_opencv, gray_opencv, CV_BGRA2GRAY);
cvAdaptiveThreshold(gray_opencv, gray_opencv, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 11, 10);
cvCvtColor(gray_opencv, image_opencv, CV_GRAY2BGRA);

//OpenCV→ARToolkit
dataPtr = (ARUint8*)(image_opencv->imageData);




void ARtoIpl(IplImage* ipl, ARUint8* arimg,int flag){

int width = ipl->width; //ARのImageも同じ幅とする
int height = ipl->height; //ARのImageも同じ高さとする
int ARWidthStep = width * 4;

for(int j = 0; j < height; j++)
{
 for(int i = 0; i < width; i++)
{
  t0 = ipl->widthStep * j + i * ipl->nChannels;
  t1 = ARWidthStep * j + i * 4;
  
  for(int c = 0; c <>nChannels; c++)
{
   if(flag == -1) arimg[t1 + c] = ipl->imageData[t0 + c];
   else ipl->imageData[t0 + c] = arimg[t1 + c];
  }
 }
}




Visual 2008에서 OpenGL을 사용할려고 인터넷을 찾다보니..
opengl32.lib glu32.lib glut32.lib glaux.lib
라이브러리는 필수로 사용하는것처럼 되어있다..

그런데, 이놈의 VS2008은 glaux.h가 빠져있다.. ㅠㅠ (C++ Builder에는 잘 들어있는데...)

그런데, 웃긴것은 이 놈을 우선은 제거해도 된다는것... 

glut.h 함수만 사용해도 어느젇도 테스트 된다는것... 

정 필요하면... 웹에서 자료를 받아서 해당 폴더에 넣어주면 됨...


아래는 웹에서 찾은 자료...

[출처] http://tong.nate.com/kangdydtjs/44551101
1. OpenGL 이란?
* OpenGL 은 그래픽하드웨어가 제공하는 모든 기능들에 접근할 수 있는 수백개의 함수들을 모아 놓은것이다. 내부적으로  OpenGL은 하나의 state machine(상태기계) 처럼 작동한다. 개발자는 상태기계의 여러측면들(현재 색상, 조명, 혼합 등등)을 조사하거나 설정할 수 있다. 몇개의 상태들이 잘못 설정되면 최종적인 결과가 전혀 엉뚱하게 나오는 경우가 허다하므로,  OpenGL을 사용할때는 여러 상태들의 의미나 효과에 대해 잘 알고 있어야 한다. 
OpenGL 은 프로그래밍 언어가 아니다. 그것은 API(Application Programming Interface) 이다. API로써 OpenGL 라이브러리는 관례적으로 C를 따른다. 이것은 함수 자체가 C로 쓰여지거나 어셈블러나 다른 언어에 쓰여진 함수를 부르는 매개적 C함수가 제공되어 C가 API 에서 함수를 쉽게 부른다는것을 의미한다. (즉 우리는 C 를 사용해서 쉽게 OpenGL 을 사용)

2. OpenGL 구분
OpenGL  API는 서로 각기 다른 라이브러리로 구분된다. 
*  AUX 라이브러리에 대한 선언은 glaux.h 파일에 포함. 이 라이브러리에 포함되어 있는 함수는 정확히 OpenGL 만의 부분은 아니지만, OpenGL 을 불러내는 독립된 프레임위크를 제공하는 툴킷이다. 이 라이브러리의 모든 함수는 aux 로 시작된다. 

(tip: VS2008 에는 VS2005 까지는 있던(visual studio 2005 설치시 저절로 생기는) glaux.h 파일이 없네요. 구글에 가보니 왜 missing이냐 질문은 수백개인데 ms 욕해놓은 답말고는 아직 답변이 없네요^^. 이거 대신 뭘쓰라고 뺐냐는 질문에도 아직 답이 없구요- 책을 대략 찾아보니 aux 이용하는거는 옛날 방식이네요 아니 간단한 연습용에 주로 쓰이고 있네요. 살짝만 복잡한 그래픽 프로그래밍 코드를 보면 glaux.h 헤더 include 는 빠져있네요. 어쨌든 우리도 특별히 꼭 필요한경우에는 불러 쓰겠지만 일단은 이거 빼고 진행합시다-)

* OpenGL 을 실제로 정의하는 기능은 opengl32.dll 라이브러리와  그  gl.h 헤더파일에 들어있다. 이 라이브러리의 모든 함수는 gl 로 시작된다.

* OpenGL 유틸리티 라이브러리는 glu32.dll 과 그 glu.h 헤더파일이 있다. glu32.dll 과 glu.h 헤더파일은 구, 원반, 원통을 그리는것 과 같은 작업을 더 쉽게 만드는 유틸리티 함수가 포함되어 있다. 이 함수는 모두 glu 로 시작된다. 

* OpenGL 라이브러리와 헤더 정리

[자료 출처] http://uzys.tistory.com/entry/AR-Toolkit-Library-%EB%B0%8F-%EA%B4%80%EB%A0%A8-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A0%95%EB%A6%AC 

혹시 몰라 자료 복사해옴..

AR관련라이브러리

FLARToolKit - Flash AR Tool Kit
http://www.libspark.org/wiki/saqoosha/FLARToolKit/en
demo - http://blog.papervision3d.org/2009/01/07/augmented-reality-with-flartoolkit/

MXR Toolkit - Only C 
http://mxrtoolkit.sourceforge.net/

Iphone용 AR TOOLKIT
http://www.artoolworks.com/ARToolKit_iPhone.html

JarToolkit 
http://sourceforge.net/projects/jartoolkit/

PyARTK - Python Binding for ARToolKit
http://mgldev.scripps.edu/projects/pyartk/

ARToolKitPlus - for mobile
http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php

NyARToolKit -PureJava or C# or C ****
http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage.en

AR 관련 사이트
일본
http://park7.wakwak.com/~blackbox/
미국
http://studierstube.icg.tu-graz.ac.at/handheld_ar/old_projects.php
http://projekt.medieninformatik.de/argui/05_links.htm
http://www.hcilab.pe.kr/links/linkIndex.html

설치관련 문서 및 튜토리얼
AR TOOLKIt 설치
http://203.241.190.120/cgl_board/view.php?id=seminar_under&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=vote&desc=asc&no=93
http://blog.daum.net/_blog/BlogView.do?blogid=0I9L6&articleno=2871843&categoryId=#ajax_history_home
http://blog.naver.com/julaki/80045599991

AR Toolkit Documentation and Tutorital
http://www.hitl.washington.edu/artoolkit/documentation/


상용화된 프로그램
전뇌피규어 ARis
http://www.youtube.com/watch?v=yCCx7zANsGE&eurl=http://blog.eufy.com/1071&feature=player_embedded
http://www.youtube.com/watch?v=o5ytkOgEaMU&eurl=http://www.rupaus.com/blog/127&feature=player_embedded

PS3 - EyePet
http://www.youtube.com/watch?v=KTarqm4FCDY&eurl=http://yoon-o.tistory.com/77&feature=player_embedded

ARToolkit + OpenVRML Setting 

다음 사이트를 참조..
http://calmarea.net/?p=167

'1.소프트웨어 이야기 > 09.ETC' 카테고리의 다른 글

ARToolkit Pro / NFT 설정 방법  (0) 2010.11.18
윈도우용 특수 문자표  (0) 2010.03.04
XCOPY 사용 방법  (0) 2010.01.14
인쇄시에는 첨부 파일을 받아서 인쇄하세요.. 

                        

!',./:;?^_`| ̄、、。· ¨ ­ ´ ˇ ˘ ˝ ˚ ˙ ¸ ˛ ¡ ¿ ː

"()[]{}‘’ 〔〕〈〉《》「」『』【】

+ - < = > ± × ÷
∬ ∈

$ % ₩ F ¢ £ ¥ ¤ ㎕ ㎖ ㎗ ㎘ ㏄ ㎣ ㎤ ㎥ ㎥ ㎦ ㎙
㎚ ㎛ ㎜ ㎝ ㎞ ㎟ ㎠ ㎡ ㎢ ㏊ ㎍ ㎎ ㎏ ㏏ ㎈ ㎉ ㏈ ㎧ ㎨ ㎰ ㎱ ㎲ ㎳ ㎴ ㎵
 ㎶ ㎷ ㎸ ㎹ ㎀ ㎁ ㎂ ㎃ ㎺ ㎻ ㎼ ㎽ ㎾ ㎿ ㎐ ㎑ ㎒ ㎓ ㎔
㏀ ㏁ ㎊ ㎋ ㎌
 ㏖ ㏅ ㎭ ㎮ ㎯ ㏛ ㎩ ㎪ ㎫ ㎬ ㏝ ㏐ ㏃ ㏉ ㏜ ㏆

# & * @ §

㉿ ㈜ ㏂ ㏘   ªº

─│┌┐┘└├┬┤┴│━┃┏ ┛┗┣┳┫┻╋┠┯┨
┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢

┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊

㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻
㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛

ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮
⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂

0123456789ⅰⅱⅲ ⅹⅠⅡ

½ ¼ ¾ ¹ ² ³ ₁₂₃₄

ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀ ㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜ
ㅝㅞㅟㅠㅡㅢㅣ

ㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ικ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω

Æ Ð Ħ IJ Ŀ Ł Ø Œ Þ Ŧ Ŋ æ đ ð ħ ı ij ĸ ŀ ł ø œ ß þ ŧ ŋ ʼn

ぁ あ ぃ い ぅ う ぇ え ぉ お か が きぎくぐ けぉ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち ぢ っ つ づ て で と ど な に ぬ ね の は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み め も ゃ や ゅゆょよらりるれろゎわゐゑをん

ァアィイゥウェエォ オカガキギクグケゲコゴサザシジスズセ ゼソゾタダチヂッツ ヅテデトドナニヌネ ノハバパヒビピフブ プヘベペホボポマミ ムメモャヤュユョヨ ラリルレロヮワヰヱ ヲンヴヵヶ

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я

'1.소프트웨어 이야기 > 09.ETC' 카테고리의 다른 글

Handy AR  (0) 2010.04.01
XCOPY 사용 방법  (0) 2010.01.14
[펌]C언어: OpenMP를 이용한 멀티 쓰레드 프로그래밍 HOWTO  (0) 2009.12.23
XCOPY Source Target [/A | /M] [/D[:날짜]] [/P] [/S [/E]] [/V] [/W] [/C]
[/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N][/Z] [/Y]

Source  = 복사할 파일을 지정합니다.
Target  = 새 파일의 디렉토리와 또는 파일 이름을 지정합니다.
/A = 보관 속성을 가진 파일을 복사하며, 보관 속성을 수정하지 않습니다.
/M = 보관 속성을 가진 원본 파일을 복사하며, 보관 속성을 지웁니다.
/D:날짜 = 지정된 날짜 이후에 바뀐 파일만 복사합니다. 
              날짜가 지정되지 않으면, 대상 파일보다 새로운 원본 파일만 복사합니다.
/P = 각 대상 파일을 만들기 전에 물어봅니다.
/S = 비어 있지 않은 디렉토리와 하위 디렉토리를 복사합니다.
/E = 디렉토리와 하위 디렉토리를 (비어 있어도) 복사합니다.
       /S /E 스위치와 같으며, /T를 수정하는 데 사용될 수 있습니다.
/V = 각각의 새 파일을 확인합니다.
/W = 복사하기 전에, 아무 키나 누르라고 프롬프트합니다.
/C = 오류가 생겨도 복사를 계속합니다.
/I = 대상을 찾을 수 없고 두 파일 이상을 복사하면, 대상을 디렉토리로 지정합니다.
/Q = 복사하는 동안 파일 이름을 표시하지 않습니다.
/F = 복사하는 동안 원본과 대상 파일의 전체 경로 를 표시합니다.
/L = 복사는 하지 않고, 복사할 파일을 표시만 합니다.
/H = 숨겨진 파일과 시스템 파일도 복사합니다.
/R = 읽기 전용 파일을 겹쳐 씁니다.
/T = 파일은 복사하지 않고 디렉토리 구조만 복사합니다. 
       빈 디렉토리와 하위 디렉토리는 포함되지 않습니다. 
       /T /E 스위치를 함께 사용하면 빈 디렉토리와 하위 디렉토리를 포함합니다.
/U = 대상에 이미 있는 파일을 새로 고칩니다.
/K = 속성을 복사합니다. 
       일반적으로 Xcopy는 읽기 전용 속성을 지웁니다.
/N = 만들어진 짧은 파일 이름을 사용하여 복사합니다.
/Z = 다시 시작할 수 있는 모드에서 네트워크 파일을 복사합니다.
/Y = 존재하는파일을 겹쳐쓸것인지 일일이 묻지않고 복사합니다.(Yes To All)

+ Recent posts