[App 개발] g++ 과 템플릿 잘 아시는 분, 도움 좀 주세요 ~
본문
첨부한 소스는 윈도에서 Visual Studio에서 빌드가 되고 실행도 되는 Graph 관련 소스코드 입니다.
그런데 리눅스나, 맥에서 빌드하려고 하면 에러가 주루룩 뜨면서 빌드가 안됩니다.
대체로 redefinition 에러나, undefined symbol 에러인데
윈도에서 그냥 빌드되던 것이 에러가 나니 좀 답답하네요.
(윈도에서도 warning은 나옵니다. C4661 이라고... 그래도 빌드는 됐었는데요..)
해결 방법이 없을까요 ???
최신글이 없습니다.
최신글이 없습니다.
댓글목록 10
hongjuny님의 댓글
워낙 explicit 한 선언을 선호하는 gcc 라는 것은 익히 알고 있었지만, 가끔 이렇게 상식을 뒤집는 경우가 있군요.
일단, inline 문의 모호성에 의한 문제는 graph.h 의 inline 함수를 따로 선언해 줌으로써 해결을 보았는데, 아직 typename 매칭 문제가 걸려 있습니다. 해결 보는대로 다시 들르겠습니다. ^^
남현우님의 댓글
템플릿의 경우 원칙적으로 헤더파일과 구현파일을 분리할 수 없습니다.
visual studio에서는 템플릿 헤더를 인클루드 하는 경우 구현부를 직접 붙여주는 식으로 동작하나 봅니다.
graph.cpp와 maxflow.cpp의 내용을 그대로 붙여넣으면 될 겁니다..
근데 maxflow치고 무쟈게 복잡하네요..
wlee님의 댓글
흠.. 제가 공부하는 컴퓨터 비전 분야에서 유명하신 분이 짜놓은 겁니다. ^^
연구 목적이다 보니 실행되는 것 위주로 짜 놓아서 그런게 아닌가 싶네요..
wlee님의 댓글
남현우님 말씀처럼 헤더에 몽땅 넣고 빌드해 보았는데 링크할 때 undefined symbols 가 많이 나오면서 링크가 안되네요.
namenu님의 댓글
(남현우) 제 xcode에서는 결과가 출력되는데..
그냥 graph.h에 때려박아 넣었을 뿐이고요.
wlee님의 댓글
남현우님 전체 코드 좀 올려줘 보시겠어요 ??
egregory님의 댓글
비전에서 Graph쓰는 분이라면.. 혹 visual cue 하시는지...
Graph 관련해서 Graphviz를 sourceforge에서 찾아보심도 좋을듯..
hongjuny님의 댓글
덕분에 저도 배웁니다. 감사합니다. ^^
wlee님의 댓글
egregory 님, 비전 하시나 보군요.. ^^
저는 그래프를 Segmentation에 사용하고 있습니다.
wlee님의 댓글
일단 namenu 님 방법으로 해결을 보기로 했습니다.
namenu 님, hongjuny 님, egregory 님 그리고 답글은 없지만 관심가져주신 다른 분들께 감사드립니다. ^^