![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
이유를 연구해보다가 -_- 황당한걸 발견했습니다.
#define BOOST_THREAD_USE_LIB 를 해주면 LIBBOOST_THREAD-BCB-MT-D-1_32.LIB <- 이 화일을 찾는데요 결론적으로 위와 같은 화일은 없구요 대신에 BOOST_THREAD-BCB-MT-D-1_32.LIB 라는 화일이 있군요. 그래서 #define BOOST_THREAD_USE_LIB <- 이라인을 지우고 위 LIB 화일을 프로젝트에 따로 추가해주고 .dll 화일을 카피해주니 작동을 하네요. 아무래도 화일이름이 잘못 지정되어 있거나 머 그런문제같은데. 어디를 손대야 할지 모르겠네요 ^^; 그럼 좋은 하루 보내세요 ^^; 휴 링크된 hpp 화일을 따라가다 보니 결국은 해결했습니다.
결론은 프로젝트에 옵션에 Use Dynamic RTL 이 체크되어 있었는데. 똑똑하게도 부스트의 auto_link.hpp라는 화일에서 이걸 검출해서 lib 화일명을 바꾸어 버리더군요 -_-; 이 상태에서 위와 같은 소스를 사용하게 되면, BCB는 다이나믹 링크를 하려고 하고 소스는 정적링크를 하려고 하다보니 엉뚱한 lib 화일을 찾게 되네요. ㅠ.ㅠ 그래서 알아낸게(매우 허접하게도) lib 디렉토리 내에서 boost_~~~ 로시작하는 것들은 다이나믹 링크용 화일들이구요. libboost_~~~ 로 시작하는 것들은 정적으로 합칠때 쓰이는 lib화일들이라는것을 알았습니다. ㅠ.ㅠ ( OTL ); 결론은 프로젝트 옵션에서 Use Dynamic RTL의 체크를 해제하면 잘된다.. 입니다. 답변 감사드리구요 boost에 관심을 갖게 해 주셔서 고맙습니다. ^^; 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
그리고 나서 테스트 해보려고 위의 소스대로 작성하여 보았는데요
우선
#define BOOST_THREAD_USE_LIB 을 해주면
"LIBBOOST_THREAD-BCB-MT-D-1_32.LIB"를 열수 없다고 나오는군요.
boost/lib 를 봐도
MT-S, MT-S-1_32 , MT-SD, MT-SD-1_32 이렇게 4가지만 있구요.
그래서 위 라인을 지우고 컴파일하면
컴파일은 되지만 실행하면 바로 Access Violation` 에러가 뜨네요 ㅠ.ㅠ;
new boost::thread(&myworker) 여기서 나는거 같은데.
왜그런지 알수가 없네요 ^^;
처음 프로젝트 오픈할때 콘솔->멀티스레드,C++ 체크하고 만든 프로젝트구요.
혹시 원인을 아시면 좀 조언좀 부탁드립니다. ^^;