2009-07-13 6 views
0

는 OSX에서 링커 오류가 _dbg_char 기호 (같은 코드를 리눅스 또는 fbsd에 아무런 오류) : 오류에 나와LD : 중복

ld: duplicate symbol _dbg_char in .libs/liboekernel_la-OEK_get.o and .libs/liboekernel_la-OEK.o 

2 libs와 광산하지만 기호가 없습니다. C++ 부싯돌 확인 '_dbg_char'두 libs 있지만 그것을 어디에서 오는 찾을 방법을 모르겠습니다.

트릭, 전략, 명백한 답변은 _dbg_char ID에 대한 방법을 크게 높이 평가할 수 있습니다.

프로젝트는 당신은 확인 할 수 있습니다 libtool이/autotools를하고 GCC 4.01

답변

1

'dbg_ ## t'에 의해 dbg_char를 정의했다 로깅/디버그 매크로를 찾았습니다. 수정은 정적으로하는 것이 었습니다. 교훈 :

  1. osx는 앞에 _ 기호 이름을 추가합니다. 내가 리눅스에서 나노를 실행하고 않고 같은 기호를 볼 때까지 그것은 아니었다 내가 "_dbg_"
  2. OSX 잘라
  3. 풍부한 아이러니 불평 옳았다 대신 "dbg_"의 코드베이스를 검색 할 생각한다는 _ 선도 - 및 - 디버그 매크로를 붙이면 완전히 이해가 안되어서 많은 어려움을 겪었습니다.
0

를 사용하는 경우 _dbg_char를 선언하지만 extern 키워드를 그리워 모두 libs와 #include 헤더 파일. 어쩌면 그게 #ifdef 다른 플랫폼을 위해 밖으로 edded 그래서 당신은 OS X에서 그 문제를 만났습니다.

+0

감사합니다. 전체 fs에 대해 grep을 사용하여 find를 실행했으며 내 사과 * .h 파일에서 _dbg_char를 찾지 못했습니다. 아직도 파고 ... – navicore