C++¿¡¼­ CÇÔ¼öÀÇ »ç¿ë
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>c_c++



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
main.cpp ¿Í hello.c ±×¸®°í hello.h ·Î ÀÌ·ç¾îÁø È­ÀÏÀÌ ÀÖ´Ù. hello.c ¿¡´Â void ÇüÀÇ hello() ¶õ ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ°í, hello.h ¿¡´Â hello() ÇÔ¼öÀÇ ¿øÇüÀÌ ¼±¾ðµÇ¾î ÀÖ´Ù.
main.cpp ÇÔ¼ö¿¡¼­ ÀÌ hello ÇÔ¼ö¸¦ »ç¿ëÇÏ±æ ¿øÇÑ´Ù¸é, ¾ð¶æ ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î ÄÄÆÄÀÏ ÇÏ·Á°í ½ÃµµÇÒ °ÍÀÌ´Ù.

gcc -c hello.o
g++ -o hello main.cpp hellow.o

±×·¯³ª À̸¦ ÄÄÆÄÀÏ ÇØº¸¸é ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.

/tmp/ccr6TqS7.o: In function `main':
/tmp/ccr6TqS7.o(.text+0x7): undefined reference to `hello(void)'

ÀÌ·± ÀÏÀÌ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â C¿Í C++ÀÇ °¢ ÄÄÆÄÀÏ·¯°¡ ¾Ë°í ÀÖ´Â ÇÔ¼ö À̸§ÀÌ ¼­·Î Ʋ¸±¼ö ÀÖ´Ù´Â µ¥¿¡¼­ ¹ß»ýÇÑ´Ù. C++ ¿¡¼­´Â °°Àº ÇÔ¼öÀ̸§ÀÌ overloading ¸¦ ÅëÇØ¼­ ¿©·¯°³ Á¸ÀçÇÒ¼ö ÀÖÁö¸¸ C¿¡¼­´Â ¿ÀÁ÷ Çϳª¸¸ Á¸ÀçÇÒ¼ö ÀÖÀ½À¸·Î, ½ÇÁö »ç¿ëÇÒ ÇÔ¼ö¸íÀ» ¸®Åϰª°ú ÀÎÀÚ°ª ±îÁö ¸í½Ã ÇØ¼­ ÄÄÆÄÀÏ·¯¿¡°Ô Á¤È®ÇÏ°Ô ¾Ë·ÁÁÙ Çʿ䰡 ÀÖ´Ù.
ÀÌ·²°æ¿ì extern "C" {ÇÔ¼ö} ¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

extern "C" { void hello(); }

¿¹Á¦ ÄÚµå
main.cpp
extern "C" { void hello(); }
int main()
{
    hello();
}
hello.c
#include "hello.h"
#include <stdio.h>

void hello()
{
    printf("hello world!!");
}
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.