E D R , A S I H C RSS

STL Port



1. Introduce

‘œค€ STL œฒฉ— ๋งžถฐ STLPort šŒ‚ฌฐ€ ๋งŒ๋“  ‘œค€…œ”Œ๋ฆฟ STL(Standard Template Language) ˜”ˆ†ŒŠค๋กœจ SGI STL— ธฐ๋ฐ˜•˜  žˆŒ.

2. „˜๋ฒ•

http://www.kwak101.pe.kr/wiki/wiki.php/STLport_VCผณฤก
๋ณธ ๋ฌธ„œ๋Š” ƒธฐ˜ Ž˜ง€— ๋‚ดšฉ„ ธ๋Œ€๋กœ ˜ธดฒƒž…๋‹ˆ๋‹ค. œ™ˆŽ˜ง€˜ ๋‚ดšฉธฐ ๋•Œ๋ฌธ— ๋งฌฐ€ นจงˆฒฝšฐ๋ฅผ ๋Œ€๋น„•œ ๋ฐฑ—…ด๋ฏ€๋กœ ฐ€๋Šฅ•˜๋ฉด ›๋ž˜˜ Ž˜ง€—„œ ๋ณด‹œธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. œ†Œ•œ˜ ›ž‘ž— ๋Œ€•œ ˜ˆ˜   ^^;;

3. ๋“ค–ดฐ€ธฐ  „—

๋ณธ ๋ฌธ„œ๋Š” Win32 ™˜ฒฝ—„œ Visual C++ ๋ฅผ ‚ฌšฉ•˜‹œ๋Š” ๋ถ„๋“คSTLport˜ STL ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ „˜•˜—ฌ ‚ฌšฉ•˜๋Š”๋ฐ ๋„›€„ ฃผธฐ œ„•˜—ฌ ž‘„ฑ๋˜—ˆŠต๋‹ˆ๋‹ค. ฐ€žฅ œ†Œ•œ˜ „˜ ณผ •๋งŒ„ ‹ฃ๋Š”๋ฐ ดˆ „‘—ˆœผ๋ฉฐ, Visual C++ 6 •˜˜ ๋ฒ„ „—„œ๋Š” …ŒŠคŠธ•˜ง€ •Š•˜Œ„ ๋ฏธ๋ฆฌ •Œ๋ ค ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ธฐƒ€ „„•œ  •๋ณด๋Š” ™ธ๋ถ€ ž๋ฃŒ ๋ฌธ„œ™” Ž˜ง€ ˜€ ฒŒ‹œŒ—„œ –ป , ๋‚˜๋ˆ„–ด ฃผ‹œธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ฐ‚ฌ•ฉ๋‹ˆ๋‹ค.

STLportด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” SGI(‹ค๋ฆฌ˜ ธ๋ž˜”ฝŠค)˜ STL„ —ฌ๋Ÿฌ ฐ€ง€ šด˜ฒด œ ๋ฐ œ๋ฐœ ๋„ตฌ—„œ “ธ ˆ˜ žˆ๋„๋ก ฌŒ…•œ ฒƒœผ๋กœ, ANSI ‘œค€•ˆ„ ถฉ‹žˆ ๋”ฐ๋ฅด  žˆœผ๋ฉฐ ™ธ˜ ๋น„‘œค€ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ถฉ‹žˆ ตฌ๋น„•ด ๋†“  žˆ๋Š” ณตœด๋ธŒ๋Ÿฌ๋ฆฌž…๋‹ˆ๋‹ค. ฒŒ๋‹ฐ€ ๋ช‡ฐ€ง€ žฅ ด ๋” ๋ถ™–ด žˆŠต๋‹ˆ๋‹ค.

  1. ž…œ ŠคŠธ๋ฆผ ๋ด๋ธŒ๋Ÿฌ๋ฆฌฐ€ œ„ ๋˜—ˆŒ.
  2. MSVC ปดŒŒผ๋Ÿฌ˜ žงˆตฌ๋ ˆ•œ ฒฝ  ๋ฉ”‹œง€๋ฅผ ๋ง‰„ ˆ˜ žˆ๋‹ค (~cpp _msvc_warnings_off.hฐ€ ค€๋น„๋˜–ด žˆŒ)

ž˜ •„‹œ ง€๋งŒ, ๋ณธ ๋ฌธ„œ๋Š” œ‹œ๋Š” ๋ถ„˜„œ Visual C++ œ๋ฐœ ™˜ฒฝณผ C++ ‚ฌšฉ— ๋ถˆŽธ••˜ง€ •Š  DOS ™”๋ฉด„‘๋ ›Œ•˜ง€ •Š๋Š”๋‹ค๋Š” ฐ€ • •˜— ž‘„–ˆ , œˆ๋„šฐ ™˜ฒฝ„ œ๋Œ€•œ ‚ฌšฉ•˜๋Š” ชฝœผ๋กœ ž‘„•˜˜€Šต๋‹ˆ๋‹ค. :)

4. ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ›•„ ๋†“ธฐ

  1. STLport Œจ‚คง€˜ ••• ŒŒ„ ๋ฐ›Šต๋‹ˆ๋‹ค. ˜„žฌ˜ œ‹  •ˆ •™” ๋ฆด๋ฆฌฆˆ๋Š” 4.6.2 (STLport-4.6.2.tar.gz)ž…๋‹ˆ๋‹ค.
     €๋Š” ˜ˆ „ ๋ฒ„ „ธ 4.5.3„ ธ๋Œ€๋กœ ‚ฌšฉ•˜ธฐ๋กœ –ˆŠต๋‹ˆ๋‹ค. (๋นŒ๋“œ ๋ฐ ‚ฌšฉ๋ฐฉ๋ฒ•— ฐจฐ€ —†Šต๋‹ˆ๋‹ค)
  2. ๋งŒ๋งŒ•ด ๋ณดด๋Š” ๋””๋ ‰† ๋ฆฌ— •••„ ’‰๋‹ˆ๋‹ค.(ฐธ ๋กœ,  œ Visual Studio๋Š” D:\Programming Files2 — žˆŠต๋‹ˆ๋‹ค)
    1-decompress.GIF
  1. ˆœ„œ๋Œ€๋กœ „‹žˆ ๋””๋ ‰† ๋ฆฌ „ค๋ช…„ ๋“œ๋ฆฌ๋ฉด ๋‹Œณผ ฐ™Šต๋‹ˆ๋‹ค. ผ๋‹›‘–ด๋งŒ ๋ณด‹œ .
    • doc : ๋ด๋ธŒ๋Ÿฌ๋ฆฌ „˜ ๋„›€๋ง ๋ฐ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ ˆผ๋ŸฐŠคฐ€ ๋“ค–ด žˆ๋Š” ๋””๋ ‰† ๋ฆฌ.
    • etc : ๋ง ธ๋Œ€๋กœ ธฐƒ€ žก๋‹ตฌ๋ฆฌ•œ ŒŒผ๋“คžˆ๋Š” ๋””๋ ‰† ๋ฆฌ
    • lib : ปดŒŒผ๋œ STLport žฌ‚ฌšฉ ๋ฐ”ด๋„ˆ๋ฆฌ(lib, dll)ฐ€ ๋“ค–ดฐ€๋Š” ๋””๋ ‰† ๋ฆฌ. (˜Œ—” —†๋‹ฐ€ ๋‚˜‘— ƒธธฒ๋‹ˆ๋‹ค.)
    • src: žฌ‚ฌšฉ ๋ฐ”ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œ•˜ธฐ œ„•œ ”Œ๋žซผ ๋ณ„ ”„๋กœ Šธ ŒŒžˆ๋Š” ๋””๋ ‰† ๋ฆฌ. (ฃผ˜: vc6.mak ŒŒžˆ๋Š”ง€ ™••ด ๋ณด„š”. ๋นŒ๋“œ— ‘š”•ฉ๋‹ˆ๋‹)
    • stlport : STL —ค๋”™€ ๋ฐ”ด๋„ˆ๋ฆฌ †ŒŠคฐ€ ๋“ค–ด žˆ๋Š” ๋””๋ ‰† ๋ฆฌ. STLportด๋ธŒ๋Ÿฌ๋ฆฌ˜ ๋ชธ†ตž…๋‹ˆ๋‹ค.
    • test : STLportฐ€ „˜๋œ ›„  œ๋Œ€๋กœ „˜๋˜—ˆ๋‚˜ ™••˜ธฐ œ„•œ …ŒŠคŠธ ”„๋กœธ๋žจ †ŒŠค.

5. ž…œ ŠคŠธ๋ฆผ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ ปดŒŒ•˜ธฐ

STLport ๋ฒ„ „˜ ž…œ ฅ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ณผ •ž…๋‹ˆ๋‹ค.•Œ๋ „ ๋ฐ”— ˜•˜๋ฉด, VC++— ๋“ค–ด žˆ๋Š” ธฐ๋ณธ(stock) ž…œ ŠคŠธ๋ฆผ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ฒƒด ๋” „ฑ๋Šฅ‹  •ˆ • ด๋  •˜ง€š”.
  1. Visual C++๋ฅผ —ด , File > Open ๋ฉ”๋‰ด๋กœ src\vc6.mak ๋ฉ”ฌŒŒ„ –ด ๋“คž…๋‹ˆ๋‹ค.
    • ๋ฉ”ฌ ŒŒ„ œผ๋ฉด, •„๋ž˜™€ ฐ™€ ๋Œ€™” ƒžฐ€ ๋‚˜™€ "”„๋กœ Šธ๋ฅผ ๋งŒ๋“ค ๋ƒ  ๋ฌผ–ด ๋ณด๋Š”๋ฐ, ๋‹—ฐžˆ ˜ˆ •˜‹œ ,  ๋‹•œ ด๋ฆ„(˜ˆ: STLP_vc6)„ ง“ . ”„๋กœ Šธ ŒŒธ .dsp™€ .dswฐ€ ๋งŒ๋“ค–ด ง€๋ฉด„œ žฌ‚ฌšฉ ๋ฐ”ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œ•  ˆ˜ žˆฒŒ ๋ฉ๋‹ˆ๋‹ค.
      2-VC6mak_read.GIF
  2. žฌ‚ฌšฉ ๋ฐ”ด๋„ˆ๋ฆฌ๋Š” STLport Œจ‚คง€— žˆ๋Š” ‘œค€ C++ —ค๋”๋ฅผ ‚ฌšฉ•˜—ฌ ๋นŒ๋“œ๋˜๋ฏ€๋กœ, VC++—ค๋”๋ฅผ ฐ€žฅ ๋จผ € ฐธกฐ•  ˆ˜ žˆ๋„๋ก •••ฉ๋‹ˆ๋‹ค. ๋”ฐ๋„œ ง“„ •ค‹œ‹ค.
    • Tools ๋ฉ”๋‰ด > Options •ญ๋ชฉ > Directories ƒญ—„œ, Include Files ๋ชฉ๋ก— stlport ๋””๋ ‰† ๋ฆฌ๋ฅผ ถ”ฐ€•˜  ๋‚˜„œ ฒƒ„ ฒซ „๋กœ ˜ฌ๋ฆฝ๋‹ˆ๋‹ค.
      3-prebuild_includePath.GIF
  3.  œ Rebuild All„ •˜‹œ๋“ ง€ •„œด๋ธŒ๋Ÿฌ๋ฆฌ ๋นŒ๋“œ๋กœ ๋“ค–ด ‘‹ˆ๋‹ค,
    ด๋•Œ, stlport\new —ค๋” ŒŒ˜ 2„—„œ —๋Ÿฌ๋ฅผ œ‚ค๋Š” ฒฝšฐฐ€ žˆ๋Š”๋ฐš”, ๋„ž„ŠคŽ˜Šค std::๋ฅผ ๋ถ™—ฌ ฃผ๋„๋ก •‹œ‹ค. (•„๋ž˜˜ ธ๋ฆผ—„œ if ๋‹Œ˜ 2„ž…๋‹ˆ๋‹ค)
  4. 4-compileError.GIF
  5.  œ‹‹œ ๋นŒ๋“œ•ฉ๋‹ˆ๋‹ค( - -; ). ‹œŠค…œ— ๋”ฐ๋ฐจด๋Š” žˆ„ ˆ˜ žˆœผ๋‚˜ 1‹œ„  •๋„ ฑธ๋ฆฝ๋‹ˆ๋‹ค.๋‹Œ ธ๋ฆผ€ ๋นŒ๋“œฐ€ ๋๋‚œ ƒƒœ˜ output œˆ๋„šฐž…๋‹ˆ๋‹ค.
    5-STLport_Lib.GIF
  6. ๋นŒ๋“œ•œด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ™••ฉ๋‹ˆ๋‹ค. ๋ณ„‹ค๋ฅธ กฐ •„ •ฃผง€ •Š•˜‹ค๋ฉด •„๋ž˜™€ ฐ™ด lib ๋””๋ ‰† ๋ฆฌ™€ •˜ ๋งŒ๋“ค–ดงˆ ฒƒž…๋‹ˆ๋‹ค.

    6-postbuild.GIF
    • ธฐ๋ณธ œผ๋กœ ๋งŒ๋“ค–ดง€๋Š” ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”  6œž…๋‹ˆ๋‹ค. ‘ "stldebug"๋ž€ ๋ฌธž—ดด ๋“ค–ด žˆ๋Š” ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” STLport  „šฉ˜ ๋””๋ฒ„ธฐ๋Šฅ•˜ ๋“ค–ด žˆ๋Š” ๋ฒ„ „ž…๋‹ˆ๋‹ค. ‚ฌšฉ๋ฐฉ๋ฒ•€ •„๋ž˜˜ "๋””๋ฒ„ธฐ๋Šฅ ‚ฌšฉ•˜ธฐ"—„œ ๋ณด‹‹œ˜ค.
      • DLL€ debug/(release)˜ 2œž…๋‹ˆ๋‹ค.
      • LIB€ debug/(release), debug_static/(release)_static˜ 4œž…๋‹ˆ๋‹ค.

5.1. <!> ž…œ ฅ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋นŒ๋“œ•˜ง€ •Š„ ๋ถ„๋“ค€?

 ˆ˜ „ค๋ช…ณผ ›„˜ „ค๋ช…„ ๋ชจ๋‘ ฑด๋„ˆ ๋›ฐ‹œ , stlport ด๋”  „ฒด๋ฅผ VC++ ด๋”˜ /include ด๋”— ๋ณต‚ฌ•˜‹‹œ˜ค. ธ๋ฆฌ  "”„๋กœธ๋žจ ด€๋ „Œ…"  ˆ๋ถ€„œ‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ๋ด๋ธŒ๋Ÿฌ๋ฆฌ ด€๋ จ ๋ถ€๋ถ„€ ด€๋ —†Šต๋‹ˆ๋‹ค.

6. STLport ™„ „žˆ „˜•˜ธฐ

๋งŒ๋“ค–ด„ STLport˜ žฌ‚ฌšฉ ๋ฐ”ด๋„ˆ๋ฆฌ™€ ‘œค€ —ค๋”๋ฅผ ๋น„ฃผ–ผ ŠคŠœ๋””˜—„œ “ธ ˆ˜ žˆ๋„๋ก •ฃผ๋Š” ณผ •ž…๋‹ˆ๋‹ค.
  1. DOS ฐฝ„ —ด , STLport Œจ‚คง€ฐ€ ’€๋ฆฐ œ„˜๋ฅผ ธฐค€œผ๋กœ src ๋””๋ ‰† ๋ฆฌ(œ„—„œ ™••˜…จ ?)๋ฅผ ฐพ•„ ‘‹ˆ๋‹ค.
    ~cpp   E:\STLport-4.5.3\src\ 
    
  2. ๋„Šค ”„๋กฌ”„Šธ—„œ nmake install„ ž…๋ •ฉ๋‹ˆ๋‹ค.
    ~cpp  E:\STLport-4.5.3\src\nmake -f vc6.mak install 
    
    • ‹œŠค…œ•Œ  žˆ๋Š” ๋น„ฃผ–ผ ŠคŠœ๋””˜˜ ด๋ฃจ๋“œ ŒจŠค™€ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ ŒจŠค— STLport —ค๋”™€ ๋ฐ”ด๋„ˆ๋ฆฌฐ€ ๋ณต‚ฌ๋  ฒ๋‹ˆ๋‹ค.

      7-makeInstall.GIF

7. ”„๋กœธ๋ž˜๋ฐ ด€๋ „Œ…

7.1. œดˆ „Œ…: ด๋ฃจ๋“œ ฒฝ๋กœ กฐ •

1. ๋น„ฃผ–ผ C++ฐ€ STLport˜ —ค๋”ŒŒ„ ฐ€žฅ ๋จผ € ฐธกฐ•  ˆ˜ žˆ๋„๋ก ด๋ฃจ๋“œ ฒฝ๋กœ๋ฅผ กฐ ••ฉ๋‹ˆ๋‹ค.
  • Tools > Options ๋ฉ”๋‰ด > Directories ƒญ—„œ, Include Files ๋ชฉ๋ก— ๋ฐฉธˆ ถ”ฐ€๋œ stlport ๋””๋ ‰† ๋ฆฌ(๋Œ€œ C:/Program Files/Microsoft Visual Studio/VC98/include/stlport ง€š”)๋ฅผ ถ”ฐ€•˜  ๋‚˜„œ, •ญ๋ชฉ„ ฐ€žฅ ฒซ „๋กœ ˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

7.2. ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ กฐ ••˜ธฐ

STLport๋Š” ƒšฉ•„‹ˆธฐ ๋•Œ๋ฌธ—, ๋งฌ ‹œ ‚ฌšฉ•˜๋Š” STLport  „šฉ C++ ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ(ž…œ ŠคŠธ๋ฆผžˆ๋Š”) ง ‘ „ ••ฃผ–ด••ฉ๋‹ˆ๋‹ค. ฒƒ„  œ๋Œ€๋กœ ••˜ ค๋ฉด šฐ„  VC++ฐ€ ‚ฌšฉ•˜๋Š” ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ •Œ•„ ๋ด••ฉ๋‹ˆ๋‹ค. VC++6˜ ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” VC98/lib ๋””๋ ‰† ๋ฆฌ—„œ ™••  ˆ˜ žˆ๋Š”๋ฐ,  • /๋™  ๋งฌ—ฌ๋ถ€— ๋”ฐ๋ฌฒŒ ~cpp LIBxxx.lib ๋ฒ„ „ณผ ~cpp MSVCxxx.lib ๋ฒ„ „œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ”„๋กœ Šธ—„œ กฐ ••˜๋Š” ๋ถ€๋ถ„€ Project > Setting ๋ฉ”๋‰ด๋กœ —ด๋ฆฌ๋Š” C/C++ ƒญž…๋‹ˆ๋‹ค. C/C++ ƒญ—„œ "Code Generation" นด…Œ ๋ฆฌ๋ฅผ „ ƒ•˜๋ฉด Use Run-time Library ๋“œ๋กญ๋‹šด ๋ฐ•Šค๋ฅผ กฐ ••„ ˆ˜ žˆŠต๋‹ˆ๋‹ค. —ฌธฐ„œ ๋””๋ฒ„ •๋ณด ฌ•จ(debug) œ ๋ฌด, ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ˜ Šค๋ ˆ๋”ฉ(thread) ๋ชจ๋“œ, ๋™  ๋งฌ —ฌ๋ถ€(DLL)˜ กฐ•„ ฒฐ ••„ ˆ˜ žˆŠต๋‹ˆ๋‹ค. ธด „ค๋ช…€ ๋นผ , „‹žˆ  •๋ฆฌ•˜๋ฉด ๋‹Œณผ ฐ™Šต๋‹ˆ๋‹ค. (MSDN˜ „ค๋ช…„ ฐธ •˜—ฌ  •๋ฆฌ•˜˜€Šต๋‹ˆ๋‹ค)
  • C ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ (iostream —†Œ) : VC++6 šฉ
    "Use Run-time Library" •ญ๋ชฉ ด๋ฆ„ Šน• ปดŒŒ˜…˜ ™˜ฒฝ๋ณ€ˆ˜ •˜
    Single-Threaded LIBC.LIB ‹Šค๋ ˆ๋“œ,  •  ๋งฌ /ML
    Multithreaded LIBCMT.LIB ‹‘Šค๋ ˆ๋“œ,  •  ๋งฌ /MT _MT
    Multithreaded DLL MSVCRT.LIB ‹‘Šค๋ ˆ๋“œ, ๋™ ๋งฌ /MD _MT, _DLL
    • Debug ๋ฒ„ „˜ ฒฝšฐ—” ฐ ๋Ÿฐƒ€ž„Lib •ญ๋ชฉ— "Debug"๋ž€ ๋ฌธž—ดด ๋ถ™ , ฐ ด๋ฆ„˜ .LIB•ž— "D"ฐ€ ๋ถ™ , ฐ ™˜ฒฝ๋ณ€ˆ˜— "_DEBUG"ฐ€ ถ”ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ‘œค€ C++ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ : VC++6 šฉ
    "Use Run-time Library" •ญ๋ชฉด๋ฆ„ Šน• ปดŒŒ˜…˜ ™˜ฒฝ๋ณ€ˆ˜ •˜
    Single-Threaded LIBCP.LIB ‹Šค๋ ˆ๋“œ,  •  ๋งฌ /ML
    Multithreaded LIBCPMT.LIB ‹‘ Šค๋ ˆ๋“œ,  •  ๋งฌ /MT _MT
    Multithreaded DLL MSVCPRT.LIB ‹‘ Šค๋ ˆ๋“œ, ๋™  ๋งฌ /MD _MT, _DLL
    • —ญ‹œ ๋งˆฐฌฐ€ง€๋กœ, Debug ๋ฒ„ „˜ ฒฝšฐ—” ฐ ๋Ÿฐƒ€ž„Lib •ญ๋ชฉ— "Debug"๋ž€ ๋ฌธž—ดด ๋ถ™ , ฐ ด๋ฆ„˜ .LIB•ž— "D"ฐ€ ๋ถ™ , ฐ ™˜ฒฝ๋ณ€ˆ˜— "_DEBUG"ฐ€ ถ”ฐ€๋ฉ๋‹ˆ๋‹ค.
ด๋ ‡ธฐ ๋•Œ๋ฌธ—, STLportšฉ C++ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ —ฌธฐ— ๋งžถฐ ˜••ฉ๋‹ˆ๋‹ค. „œ˜ ๋งคฌ๋กœ ƒˆ˜๋ฅผ ‚ฌšฉ•  ˆ˜ žˆŠต๋‹ˆ๋‹ค.
  • STLport˜ด๋ธŒ๋Ÿฌ๋ฆฌ „ ƒ: VC++6šฉ
     •˜•œ ๋งคฌ๋กœ ƒˆ˜๋Œ€‘๋˜๋Š” "Use Run-time Library" „ •๋งฌ๋˜๋Š” STLport ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ
    _STLP_USE_STATIC_LIB <*><*threaded> stlport_vc6_static.lib
    _STLP_USE_DYNAMIC_LIB <*><*threaded> DLL stlport_vc6.lib
    _STLP_USE_STATICX_LIB <*><*threaded><*> "DLL"ด๋ฉด stlport_vc6.lib, •„‹ˆ๋ฉด stlport_vc6_static.lib

7.3. <!> ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ „Œ…ž˜ •ˆ๋ •Œ

_STLP_USE_STATIC_LIB ƒˆ˜๋ฅผ  •˜•œ ›„— "Use Run-time Library" „ •„ <*><*threaded>œผ๋กœ ๋งž˜ ๋’ค—๋„ ~cpp LNK2005 —๋Ÿฌ™€ ~cpp LNK4098 ฒฝ ฐ€ ๋™‹œ— ๋‚˜๋Š” ฒฝšฐฐ€ žˆŠต๋‹ˆ๋‹ค. ด๋Ÿฐ —๋Ÿฌฐ€ ๋‚˜˜ฒƒž…๋‹ˆ๋‹ค.
~cpp 
 LIBCMT.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in LIBC.lib(osfinfo.obj)
 LIBCMT.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in LIBC.lib(osfinfo.obj)
 .
 .
 .
 LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
 <‹–‰ŒŒฒฝ๋กœ> : fatal error LNK1169: one or more multiply defined symbols found
 Error executing link.exe.
ด๋Š”, VCฐ€ ฝ”๋“œ ƒ„˜…˜„ ๋ฌด‹œ•˜  LIBCMT.lib„ ธฐ๋ณธ œผ๋กœ ๋ง๋Œ€–ด ๋„–ดฃผธฐ ๋•Œ๋ฌธž…๋‹ˆ๋‹. ‹–‰ŒŒ„ ๋งŒ๋“œ๋Š” ฒฝšฐ๋ผ๋ฉด —๋Ÿฌฐ€ ฐ€žฅ „ฐ€‹…Œง€๋งŒ, ๋ฐฐฌšฉ ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ฒฝšฐ—” ฒฝ ๋„ —†•  ฃผ–ด••ฉ๋‹ˆ๋‹ค. —๋Ÿฌ™€ ฒฝ ๋ฅผ —†• ธฐ œ„•„œ๋Š”, œ„— ๋‚˜˜จ ๋งปค ๋ฉ”‹œง€ ๋Œ€๋กœ /NODEFAULTLIB ˜…˜„ จ••ฉ๋‹ˆ๋‹ค. VC IDE๋ฅผ “ฐ  „‹œ‹ค๋ฉด Project->Setting ๋ฉ”๋‰ด๋ฅผ „ ƒ•˜  ๋‚˜˜ค๋Š” ๋Œ€™”ƒž—„œ "Link" ƒญ„ „ ƒ•˜‹œ , "Input" ๋“œ๋กญ๋‹šด •ญ๋ชฉ„  ๋ฅธ ›„— "Ignore Libraries" —๋””Šธ ƒž— LIBCMT.lib๋ฅผ จ ๋„œ‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
™ธ—๋„, ธฐ๋ณธ ๋Ÿฐƒ€ž„ด๋ธŒ๋Ÿฌ๋ฆฌ™€ ด€๋ จ๋œ ๋‚ดšฉ˜ URL„ ฒจ๋ถ€•˜‹ˆ, ฐธ •˜‹œธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

7.4. ๋””๋ฒ„ธฐ๋Šฅ ‚ฌšฉ•˜ธฐ

STLport—๋Š” žฒด ๋ด๋ธŒ๋Ÿฌ๋ฆฌ—„œ žฒด ๋””๋ฒ„ •๋ณด๋ฅผ ๋‚ด–ด ฃผ๋Š” ๋…Šน•œ ธฐ๋Šฅ„ ฐ€ง€  žˆŠต๋‹ˆ๋‹ค. ๋ณดถฉ„ค๋ช…€ Ž™‹ฐ๋ธŒ STL˜ •ญ๋ชฉ 50„ ฐธ •˜‹‹œ˜ค. —ฌธฐ„œ๋Š” STLport˜ ๋””๋ฒ„ธฐ๋Šฅ„ ™œ„™”•˜๋Š” ๋ฐฉ๋ฒ•๋งŒ „ค๋ช…•ฉ๋‹ˆ๋‹ค.๋ง€ ฑฐฐฝ•˜ง€๋งŒ, ๋ณธ๋ก € „‹•ฉ๋‹ˆ๋‹ค. ฐ€žฅ ๋จผ € ปดŒŒผ๋˜๋Š” ŒŒผ(.h/.cpp)˜ •ž๋ถ€๋ถ„— ๋‹Œณผ ฐ™
~cpp 
#define _STLP_DEBUG
_STLP_DEBUG๋ž€ ‹ฌ๋ณผ„  •˜•ด ๋‘๋ฉด ๋ฉ๋‹ˆ๋‹ค. ด๋ ‡ฒŒ •˜๋ฉด, "stldebug" ๋ฌธž—ดฌ•จ๋œ libณผ DLL‚ฌšฉ๋ฉ๋‹ˆ๋‹ค.

8. …ŒŠคŠธ

 œ‹ค ๋๋‚ฌŠต๋‹ˆ๋‹ค. STLportฐ€  œ๋Œ€๋กœ „˜๋˜—ˆ๋Š”ง€ ™••˜๋Š” ˜๋ฏธ—„œ, Œจ‚คง€— ๋“ค–ด žˆ๋Š” ๋ฉ”ฌ ŒŒ„ Visual C++„ ‚ฌšฉ•˜—ฌ € ›„— ๋นŒ๋“œ•ด ๋ณด„š”.
~cpp  test\eh\vc6.mak
 test\regression\vc6.mak
ž๋™œผ๋กœ …ŒŠคŠธนŒง€ •„ ฒ๋‹ˆ๋‹ค.

9. ๋ฌธ œ •ฒฐ

9.1. nmake— ๋ฌธ œฐ€ žˆ„ ฒฝšฐ

๋งŒ•— nmakeฐ€ ‹–‰๋˜๋Š” ๋ฐ ๋ฌธ œฐ€ žˆฑฐ๋‚˜ด๋ธŒ๋Ÿฌ๋ฆฌ „˜ฐ€  œ๋Œ€๋กœ ๋˜–ด žˆง€ •Š๋‹ค๋ฉด, ๋น„ฃผ–ผ ŠคŠœ๋””˜— ด€๋ จ๋œ ™˜ฒฝ ๋ณ€ˆ˜ฐ€ ‹œŠค…œ—  œ๋Œ€๋กœ ๋“ฑ๋ก๋˜ง€ •Š€ œ ฐ€ ๋Œ€๋ถ€๋ถ„ž…๋‹ˆ๋‹ค. ธ๋Ÿฌ๋ฏ€๋กœ, VCVARS32.BAT๋ฅผ ‹–‰•œ ›„— ๋‹‹œ nmake install„ •ด ๋ณด„š”.

9.2. ”Œ๋žซผ SDKณผ ฐ™‚ฌšฉ•  ฒฝšฐ "InterlockedIncrement" ด€๋ ปดŒŒ—๋Ÿฌฐ€ ๋‚ •Œ

ƒธฐ๋Š” —๋Ÿฌ๋Š” ด๋Ÿฐ ๋ฅ˜˜ ๋ฉ”‹œง€ž…๋‹ˆ๋‹ค:
~cpp 
e:\microsoft visual studio\vc98\include\stlport\stl\_threads.h(122) : 
error C2733: second C linkage of overloaded function 'InterlockedIncrement' not allowed 
e:\microsoft visual studio\vc98\include\stlport\stl\_threads.h(122) : see declaration of 
'InterlockedIncrement' 
ปดŒŒ—๋Ÿฌ๋ฅผ ๋ง‰œผ๋ ค๋ฉด, STLportฐ€ „˜๋œ ๋””๋ ‰† ๋ฆฌ(๋Œ€œ C:/Program Files/Microsoft Visual Studio/VC98/include/stlport ง€š”) —„œ stl_user_config.h๋ฅผ ฐพ•„ —ด , ๋‹Œ ๋ถ€๋ถ„„ ฃผ„ • œ•ฉ๋‹ˆ๋‹ค.
~cpp 
// # define _STLP_NEW_PLATFORM_SDK 1  

10. ๋ฌธ„œ  •๋ณด

  • œดˆ ž‘„ฑ ๋‚ œ :2002/03/02
  • œข… —…๋ฐŠธ ๋‚ œ : Ž˜ง€ •„๋ž˜— žˆ๋Š” "last modified"— ๋‚˜™€ žˆŒ
  •  šฉ ”Œ๋žซผ : Win32 / VC++ 6
  • ž‘„ž : ณฝšฉžฌ (kwak101@hitel.net)

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:57
Processing time 0.0443 sec