본문 바로가기

분류 전체보기528

undefined reference to `closesocket' 이클립스로 개발환경을 바꾸어서 작업을 진행하다보니 여러가지 문제점에 마딱드리게 되는군요... 개발을 어서 진행을 해야하는데 설정하느라 시간 다잡아먹는.. 서론은 뒤로하고 visual studio를 사용할 때에는 소켓통신을 하기 위해서 프로젝트 속성에 라이브러리를 등록하거나 아니면 #pragma comment (lib, "Ws2_32.lib") 를 코드에 입력하거나.. 2가지 방법이 가능했는데 이클립스에서는 소스코드에 입력하는 방법을 찾지 못하였기에.. 프로젝트 속성에서 등록하는 방법을 남깁니다. 프로젝트를 우클릭 하신 후에 최하단의 properties를 클릭하시면 다음과 같은 화면이 뜹니다! 라이브러리를 등록하기 위해서 찾아간 경로는 C/C++ Build -> Settings 이고 여기서 우리가 추가해 .. 2017. 2. 10.
툴체인(toolchain) CentOS 7에서 이클립스 IDE를 활용하여 C++ 개발을 하기 위해 이것저것 알아보고 있었습니다. 최종적으로는 리눅스와 윈도우 상관없이 사용가능한 프로그램을 제작하려 합니다. 그렇기에 일단 윈도우에서 이클립스를 설치하고 CDT를 설치해보았습니다. 설치 완료후에 C++ 프로젝트를 새로 만들려고 하니 아래와 같은 프로젝트 생성창이 뜹니다. 여기서 보면 Toolchains라는게 있습니다. 일단 알아보기 전에는 컴파일러 선택하는건가 싶었습니다. 그렇지만 궁금하기에 제대로 알고 넘어가자! 라고 생각하여 검색 검색 검색... http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=67848150&qb=ZWNsaXBzZSBjeWd3aW4gZ2Nj&enc=u.. 2017. 2. 8.
구조체에서 std::string 변수 사용시의 메모리 릭(memory leak) 예를 들어 다음과 같은 구조체가 있다고 가정하겠습니다. typedef struct A { int8_t cChar; int16_t sShort; int32_t nInt; }sA; A구조체의 경우 아래와 같이 memset or Zeromemory 사용시에 문제가 발생하지 않습니다. sA a; memset(&a, 0x00, sizeof(sA)); // 아무 문제 없음! typedef struct B { std::string strString; int32_t nNum; }sB 그러나 B구조체의 경우 아래와 같이 memset or Zeromemory를 사용하면 메모리 릭이 발생합니다. sB b; memset(&b, 0x00, sizeof(sB)); // 컴파일에는 문제가 없으나 메모리 릭이 발생합니다. std::.. 2017. 2. 7.
미리 컴파일된 헤더 사용 안 함 개별적으로 작업을 진행하다가 통합하는 경우가 생겼습니다. 저 같은 경우엔 콘솔 응용프로그램으로 프로젝트를 만들어서 테스트 하였습니다. 통합은 MFC 프로젝트로 진행하게 되었는데요... 음 여기서 문제가 생겻습니다. 미리 컴파일된 헤더 사용에 관한 것이었지요... 제가 작성한 파일들은 미리 컴파일된 헤더를 사용할 필요가 없기 때문에 이를 사용 안 함!! 으로 설정해주어야 할 필요가 생겼습니다. 그리하여 기록하고자 다음과 같은 이미지를 남깁니다. 미리 컴파일된 헤더 사용 안 함! 을 설정하고 싶은 파일을 우클릭하시고 속성에 갑니다. 구성속성 -> C/C++ -> 미리 컴파일된 헤더 로 이동합니다. 그럼 다음과 같은 창이 뜰 것이고 미리 컴파일된 헤더 사용 안 함 을 선택하시고 확인해주시면 되겠습니다! 2017. 2. 1.