Category: c++

cmake clang++ 을 사용해 build 하기

cmake 로 구성된 프로젝트를 clang 으로 빌드하는 간단한 방법 cmake 구성시 로 cmake 를 실행 한다 c++ 컴파일러와 c 컴파일러를 clang++ clang 으로 지정해서 구성하게 되며 컴파일 프론트엔드/백엔드가 clang / LLVM 으로 구성 된다 이상태로 빌드시 에러메세지라던지 링크 오류가 조금 달리즌것을 확인 할 수 있다 혹은 환경변수에 CC CXX 를 변경해주면 된다

so 사용중 pthread Segmentation fault 문제

리눅스 c++ a.so 내에서 pthread 사용 a.so 를 사용하는 main 에서는 pthread 미사용 main 에서 so 를 dlopen 으로 동적 로딩 cmake > target_link_libraries(${PROJECT_NAME} pthread dl) 링크 위 상태에서 발생 할 수 있는 링크 오류 실제 main 의 ldd 를 확인 해보면 pthread 가 링크되지 않은걸 확인 할 수 있음 이는 실제 링크 시 필요한 […]

[c++] 개발 교양

이 내용은 절대적인 룰 이 아닌 권장사항이나 가급적 지켜짐이 좋다고 판단되는 부분을 다룹니다 포인터 delete 후 nullptr 대입 포인터를 사용 할땐 항시 nullptr 상태 인지 체크 한다 이건 따로 기술할 의미도 없다 그때에 nullptr 인 상태를 체크 하기위해서는 포인터 변수는 항상 사용후 삭제시 쓰레기주소가 남아있지 않도록 nullptr (NULL,0 보다는 nullptr) 을 대입하자 하물며 함수 스코프 […]

[windows][socket] inet_ntoa, inet_addr error C4996: 수정

inet_ntoa, inet_addr error C4996: 해결방법 _WINSOCK_DEPRECATED_NO_WARNINGS define deprecated 된 코드사용 을 에러나 경고 없이 가능하게 한다 inet_ntoa > inet_ntop/InetNtop 그리고 inet_addr > inet_pton/InotPton 함수로 변경 더 이상 사용하지 말라고 하는 함수를 신규 함수로 변경한다 기존 변경 헤더 추가 후 위 코드와 같이 수정 시 정상 컴파일 되는 것을 확인할 수 있다이외에도 sdl 검사를 제거하는 방법도 […]

[c++20][windows] std::chrono::from_stream 사용중 버그

c++ 모던, 그리고 20로 발전되어 오면서 사소한 구현을 std 의 라이브러리/함수를 사용하면 편리해 졌습니다.. 대다수가 안되던 것은 당연히 아니니까요 그중에서 string 시간/날자 를 chrono time , time_point 로 변환할 수 있는 https://en.cppreference.com/w/cpp/chrono/duration/from_stream from_stream 을 사용할 수 있습니다 예를들면 “2021-12-06 12:31:04” 같은 문자열을 time_point 로 변환할 수 있고 연산이나 값을 사용할 수 있죠.. 다만 이는 현재 […]

[c++17][byte] visual studio c++17 with windows.h byte error C2872

visual studio 상에서 c++17 옵션을 활성화 시 만날 수 있는 오류 영문 1>c:\program files (x86)\windows kits\10\include\10.0.14393.0\shared\rpcndr.h(192): error C2872: ‘byte’: ambiguous symbol1>c:\program files (x86)\windows kits\10\include\10.0.14393.0\shared\rpcndr.h(191): note: could be ‘unsigned char byte’1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\cstddef(15): note: or ‘std::byte’ 한글 1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\oaidl.h(563,26): error C2872: ‘byte’: 모호한 기호입니다.1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\rpcndr.h(191,23): message : ‘unsigned char byte’일 […]

[C++][libcurl][windows] visualstudio libcurl 빌드하기

windows 환경 visual studio 2019 에서 github 소스 를 받아 로컬 static 빌드 git clone 을 받은 뒤 해당 폴더에서 buildconf.bat 을 실행한다 이는 위에 확인되는 tool_hugehelp.c 를 받아 두기 위함이다 해당 파일은 이후 빌드중 이 과정이 없을 시 아래와 같은 오류 가 발생하게 된다 이후 윈도우 검색등을 이용하면 “x64 Native Tools Command Prompt for […]

vs2019 에서 vcpkg static lib 사용

기본적으로 vcpkg 는 shared lib 으로 download/build 되고 visual studio 에서의 폴더링크도 해당 이름으로 자동 맵핑되게 된다 해서 vcpkg intergrate install 을 아무리 해도 프로젝트상 자동으로 해당 static lib 헤더/라이브러리 연결이 되지 않는다 static 으로 명시적으로 받은 lib 을 프로젝트에서 수동설정 없이 사용하기 위해서 vs2019 에서는 프로젝트 속성페이지에 구성속성이 생기며 위와같이 vcpkg > target and […]