g++ 로 작업시 gnu c 라이브러리를 링킹하여 사용이 가능 하나요
글쓴이: mistraknight / 작성시간: 금, 2003/07/11 - 3:08오후
g++ 로 패킷 캡쳐 프로그램을 만들고 있습니다.
libpcap 라이브러리를 사용하여서 개발하는데 컴파일시에 다음과
같은 문제가 발생 하네요
g++ -o pcap_test pcap_test.cpp -lpcap
문제는 pcap 에 존재하는
pcap_dev, pcap_lookupnet 등의 함수를 링킹할수 없다는 에러
메시지가 나옵니다.
동일한 파일을 이름을 c 로 바꾸고 gcc를 사용하여 다음과 같이
컴파일을 했을 경우에는 문제없이 제대로 결과가 나옵니다.
gcc -o pcap_test pcap_test.c -lpcap
음 www.faq.org 에서 찾아보니 g++ 에서 gnu c library를 사용할수
없다는 내용을 본거 같은데 혹 제가쓰는 g++ 의 버전이 낮아서 그런걸
까요?
답변 주시면 정말 감사 하겠습니다 ^^;;
그럼 좋은 하루 보내세요~
Forums:
pcap 관련 헤더 파일을extern "C" {}로 감
pcap 관련 헤더 파일을
extern "C" {
}
로 감싸줘 보세요.
구체적으로 말씀드리면extern "C" pcap_dev(blahb
구체적으로 말씀드리면
extern "C" pcap_dev(blahblah);
extern "C" pcap_lookupnet(blahblah);
....
사용하시는 pcap라이브러리 관련 함수들을 모두 이렇게 처리해 주시고
이래도 안되면 라이브러리 문제인데.. 아마 저렇게 하시면 될겁니다 ㅡ.ㅡ
저도 이전에 비슷한 문제 겪었었는데 extern "C" 까지는 생각했는데 저렇게 할 생각을 못하고 3일동안 고민하다가 여기 글 올려서 해결을 했었죠 ㅡ.ㅡ
동일한 문제는 아닙니다만...pcap library header
동일한 문제는 아닙니다만...
pcap library header 에 extern "C" 가 없다면.. 그 header를 직접 수정하지 않고,
extern "C"
{
#include <pcapblahblah.h>
}
와 같은 방법을 사용하셔도 됩니다.
아마 cdpark 님도 위 방법을 말씀하시려고 했던것이..아닌가요? ^^
---
http://coolengineer.com
libpcap.a가 존재하는 디렉토리가 LIB_PATH에 잡혀있지 않다면
libpcap.a가 존재하는 디렉토리가 LIB_PATH에 잡혀있지 않다면
-L 옵션으로 해당 디렉토리를 지정해 주셔야 합니다.
s(˘∼˘*)z,·´″"`°³о$ √(´∀`√)... (˘ヘ˘ㆀ)a
^^ 감사 합니다.
:D
도와주신 덕분에 문제를 해결 하였습니다.
다들 행복 하시고 좋은 밤 보내세요 ^^/
댓글 달기