반드시 포함되어야 하는 두 라이브러리의 헤더파일에 동일한 이름이 있습니다. redeclared as different kind of symbol 에러가 떴는데 어떻게 해결해야 할지 모르겠네요. 하나는 A 라이브러리에서 enum 안에서 사용되고 B 에서는 구조체 이름이네요.
양쪽다 꽤나 큰 라이브러리고 왠간하면 양쪽은 안건드리고 제가 어떻게 해야 회피할 수 있을까요. 감사합니다
흑마술 수준이라 웬만하면 권해드리고 싶지 않지만, 겹치는 이름이 NAME이라고 치면,
#define NAME A_NAME #include "library_a/..." #undef NAME #define NAME B_NAME #include "library_b/..." #undef NAME
단 이 짓을 a, b를 인클루드하는 곳에서 전부 다 해줘야 합니다. * 된다고 보장은 못해드립니다. -_- * 쓰고나서 보니 그냥 헤더 파일을 고치시는 게 나을지도...
c인가요? cpp라면 네임스페이스를 활용하시면 될텐데
하나의 .c 파일에서 A와 B를 둘 다 인클루드하지 말고, 나누시죠.
mymodule.c에서 A, B를 모두 #include하고 있었다면 mymodule1.c에서는 A를 #include하고 mymodule2.c에서는 B를 #include하는 식으로요.
텍스트 포맷에 대한 자세한 정보
<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]
...
흑마술 수준이라 웬만하면 권해드리고 싶지 않지만, 겹치는 이름이 NAME이라고 치면,
단 이 짓을 a, b를 인클루드하는 곳에서 전부 다 해줘야 합니다.
* 된다고 보장은 못해드립니다. -_-
* 쓰고나서 보니 그냥 헤더 파일을 고치시는 게 나을지도...
c인가요? cpp라면 네임스페이스를 활용하시면 될텐데
c인가요? cpp라면 네임스페이스를 활용하시면 될텐데
하나의 .c 파일에서 A와 B를 둘 다 인클루드하지
하나의 .c 파일에서 A와 B를 둘 다 인클루드하지 말고, 나누시죠.
mymodule.c에서 A, B를 모두 #include하고 있었다면
mymodule1.c에서는 A를 #include하고
mymodule2.c에서는 B를 #include하는 식으로요.
댓글 달기