반응형

전체 글 261

[STACKOverflow] Visual Studio 스택 크기 늘리기, Cmake 적용

이슈 확인중 재현해보니... stack oveflow였고 호출스택을 보니... 같은 함수가 무지막지하게 호출되고 있었다. 해결하는 방법은 많은데 그중 들은건 릴리즈시, 스택 크기를 기본 1MB가 아닌 좀 더 늘려서 하자는 거였다. 음.. cmake인데.. 어떻게하지..? 간단하다. 우선 Visual Studio에서는 프로젝트 속성에서 수정할수 있다. 아래 그림처럼 '링커' -> '시스템' 에서 적당히 고쳐주면 된다. 바이트 크기이다. 그렇다면 cmake에서는 어떻게 할까? 아래 링크를 참조할 수 있다. 먼저, VS에서 링커 옵션중 /STACK 옵션을 사용한다. 이것이 위 그림의 '스택 예약 크기' 이다. 필자의 Cmake는 target(최종 빌드 결과물)이 되는 3개의 바이너리에 target_link_o..

빨간색 에러들 2022.07.24

[C++] restrict keyword: AMP(Accelerated Massive Parallelism)

뭐 분석 오류로 인해서 보고 있었는데 우선 Visual Studio의 이친구였다... 우선 난 첨본다.. 찾아보면 아래에서 알 수 있다. https://docs.microsoft.com/ko-kr/cpp/parallel/amp/cpp-amp-overview?view=msvc-170 C++ AMP 개요 자세한 정보: C++ AMP 개요 docs.microsoft.com 아아아~~ C++의 GPU 기능과 병렬처리를 통해 속도를 빠르게 할 수 있는거구나 그런데 Visual Studio 2022 버전 17.0 부터는 사용을 안하는구나..!? 하고 넘어가면 될듯하다. 안에 기본 예제 정도가 있으니 한번 따라해보면 되는데 내 문제는 아래 헤더 파일의 내용이다. 흠.. restrict..? 아 이 친구가 문제였는데...

C , C++, C# 2022.07.04

[CPU 100%] 컴퓨터 느려짐 / CPU 100% 사용

여느날처럼 컴퓨터를 부팅하면서 매일 뜨는 Docker 업데이트를 보기 싫어서 어차피 윈도우 Docker는 잘 안쓰니 지워버렸다. 그러면서.. 누가봐도 컴퓨터가 갑자기 느려지고 크롬을 실행하는데 버벅이고 그래서 뭔가 문제가 생겼다. 작업관리자도 늦게 켜지고.. 모든게 느렸는데 먼저 CPU 100과 메모리 90 이상이 매우 거슬렸다. 그래서 얘내들을 줄이면 되겠지 하고 보통 구글링 하면 아래와 같을것이다. https://www.maketecheasier.com/fix-windows-100-cpu-usage/ 100% CPU Usage in Windows? Here's How to Fix it - Make Tech Easier Even on a newer PC, it is common to see 100% C..

기타 2022.06.27

복잡한 선언 읽기: C / C++

어쩌다 여러방면의 코드를 얘기한 적이 있었는데.. 복잡한 구문을 쉽게 읽고 쓸수 있는 방안이 있다고 했다. 찾아보니 나선 방향?으로 읽고 이해하면 쉽다고 했다. C에서 Signal 라이브러리 함수를 읽을정도면 완벽히 이해한 것이다. 아래 간단한 예제는 우리 모두 무슨 의미인지 쉽게 알 수 있다. const char *chptr; // pointer to char const char * const chptr; //const pointer to char volatile char * const chptr; // const pointer to chat vo.. 문제는 아래와 같은 예제들이다. 아래 참조를 통해 공부해보자. char *(*fp)( int, float *); void (*signal(int, voi..

C , C++, C# 2022.06.21

[C++] cmd system 함수 / xcopy

작업하는데 코드가 실행될때 디렉토리를 복사하며 그것을 C++ 코드로 실행해야 했다. 찾아보면 금방 확인할 수 있으니 아래에 정리해본다. 먼저, xcopy 명령으로 디렉토리를 복사하는 과정을 해보자. 쉽게 확인할 수 있다. 문제는 복사할 대상 경로를 "....." 큰따옴표로 잘 감싸주자. 그리고 복사할때, /I 옵션을 사용하면 선택문 없이 디렉토리로 가정하여 바로 복사해준다. xcopy /? 명령어를 사용해 모든 옵션을 확인할 수 있으니 필요한 옵션들은 확인하면 된다. 자 이제 해당 명령을 코드로 cmd 명령을 실행하게끔 해보자. 찾아보면 더 많을수도 있지만 필자는 system() 함수를 사용하였다. 그대로 사용할 명령어를 string 타입으로 사용하면 된다. 이스케이프" 쌍따옴표를 잘 사용하면 쉽게 사용..

C , C++, C# 2022.05.30

[Visual Studio] error: lnk1112 module machine type x64....

32비트 바이너리를 매일 빌드하는데... 최근 사내 업데이트로 바이너리를 x64 비트로 빌드해야 하는 작업을 하고 있다. VS code에서는 configuration을 아래 그림과 같이 편하게 잡아주기 때문에? 금방 작업할 수 있는데... Visual Studio는 상단에 실행 / 디버그 쪽에 x64를 체크하면 되는걸로 알고있다. 하지만!? 없는 경우가 있었고 임의로 사용 확장 가능한 아키텍처를 임의로 고르다 보니 여러 이상해졌다. 구성 관리자가 Win32 밖에 없었고... 뭐 새로 추가해서 마음대로 하니 빌드가 안돼고 이상해졌다. 그래서 프로젝트 속성(C/C++ , 링커)과 솔루션 속성에 들어가서 확인해봤는데 별로 문제가 없어보였다. 명령줄에 machine 옵션, 솔루션 구성 설정에 들어간 라이브러리 ..

빨간색 에러들 2022.05.25

[Cmake] add_custom_target / .cmake file

한번의 명렁어로 여러 target은 cmake -B [build directory] --target all 과 같이 모든 target을 빌드할 것이다. 그런데 내가 좀더 구분짓고 싶은것은 일부 타겟만 빌드할수 없을까 이다. 그래서 Cmake를 조금 찾아보면 custom target을 통해 이를 해결할 수 있다. 그리고 이를 .cmake 파일을 통해 만들었다. .cmake는 마치 스크립트와 같은 느낌으로 이해하면 되는데 function() 을 사용하여 CmakeLists.txt 에서 해당 function의 이름을 호출하면 실행되는 방식으로 이해할 수 있다. 위와 같이 CmakeLists.txt에 cmake 파일의 경로를 include하고 function의 이름으로 호출하면 .cmake 파일의 내용을 실행한..

C , C++, C# 2022.05.18

[C++] 비정적 맴버 참조는 특정... / 형식 이름을 사용할 수 없습니다. / 추상 클래스 개체

c++ 테스트 코드를 작성하면서 발생한건데 검색해보면 많이 확인할 수 있다. 먼저 필자는 순수 가상 함수를 가지는 추상 클래스의 개체를 생성하려고 한것이 문제였다. 그것을 제대로 모르고 해당 순수 가상 함수를 &연산자를 사용하여 참조할 수 있도록 주소 객체를 만들고 그 객체로 접근하려다 보면..... 산으로 빠져버린다.. 과연 아래코드는 컴파일이 될텐데 에러가 없을까..? 에러 내용만 보고 고치면 이렇게 고칠수 있다... 이를 피하려면 문제의 원인이 추상 클래스임을 알고 추상 클래스가 상속된 파생 클래스의 개체를 생성해서 사용할 수 있다. 항상 코드가 어떻게 구성되어 있는지 잘 보자.. 쉽지 않겠지만.. 문제는 아래처럼 단순하면 금방 발견할수 있는데... 코드가 복잡하고 많다보니 쉽게 발견못할수도 있다...

빨간색 에러들 2022.05.17

[Windows update] 업데이트 되돌리기 / 파일 탐색기 에러 couldn't find explorer

보통 윈도우 10 업데이트를 꺼놓는데 사내 PC는 최신 업데이트를 받는다. 그리고 보통 목요일 오후에 그 작업이 이루어지는걸로 보인다. 그렇게 있는데.... 문제는... 업데이트 이후.... 어디선가.. 충돌이 났는지... 우선 찾아보니 에러는 아래와 같다... : C:\Windows\Logs\WindowsUpdate 파일탐색기에서 에러가 났고 Refersh 기능에 문제가 있었다. 새폴더 생성 및 삭제가 바탕화면 및 파일탐색기에서 바로 보이지가 않았고 새로고침하거나 다시 뒤로갔다 돌아와야 생성과 삭제가 되는것을 볼 수 있었다.. 이게 freecommand에서도 마찬가지 였다... 관련된 글을 찾아보면.. 1. 파일탐색기 프로세스 재시작 -> 처음에 제대로 동작한 후, 두번째부터 다시 문제가 발생 2. 레..

빨간색 에러들 2022.05.01

[C++] error: ISO C++ does not permit :: initialize the protected static member / undefined reference static member

C++을 공부하는데 static 변수가 좀 특이한것을 확인할 수 있다. 특히, static 변수의 경우 컴파일러에 따라 특징을 나타낼수 있었다. VS에서는 inline 키워드를 함부로 사용할 경우 컴파일 에러를 나타낸다. 하지만, GCC에서는 컴파일 에러가 나타나지 않는다. 또한, GCC에서는 표준에 따라 차이가 있는데 static 키워드의 정의를 할수 있는가? 초기화는? class 내부에 선언된 static 변수를 사용할때 어떻게 해야하는가..? 아래 코드가 VS에서 그리고 Gcc c++17 문법에서 inline이 있을때와 없을때 어떻게 되는지 확인할 수 있다. 간단히 보면 GCC에서는 inline 키워드로 static 변수를 class 선언 파일에서 바로 정의가 가능하다. VS에서는 inline 키워..

빨간색 에러들 2022.05.01
반응형