본문 바로가기
  • 공부, 여행 리뷰해요~~!!
반응형

C++15

make: Nothing to be don for 'all' - 해결 방법 개인공부를 위한 기록입니다. 잘못된 점에 대한 지적 감사드립니다. Makefile을 이용하여 빌드하는 도중 다음과 같은 문구가 발생하여 make 되지 않았습니다. make: Nothing to be done for 'all' 여러 글 들을 찾아보니 아래와 같이 입력하면 다시 될 거라고 하더라구요. make clean 혹은, make clean all 위 방법을 사용하고, 다시 make 해보니 다음과 같은 문구가 뜹니다. make: 'example.o' is up to date. c++ 파일을 .o 파일로 컴파일 하는데, 이미 'example.o'가 최신이라고 합니다. 해결 방안은, 첫 번째, 이 파일은 최신 파일이니 이 파일을 제외하고 빌드하면 됩니다. 두 번째, 아래와 같이 해당 파일을 지우고 rm -.. 2022. 8. 23.
리눅스 Permission denied / cannot execute binary file g++ 이용하여 빌드한 이후 컴파일한 결과를 확인하려고 하는데 Permission denied가 떴다. chmod +x filename 으로 file에 권한 부여 하였다. chomd +x a.out (스샷이 조잡해서 죄송합니다 ㅜ) 참고, VS Code의 git bash에서는 "cannot execute binary file"라는 에러가 발생했었다. 구글링 해보니, 리눅스 비트 문제라고 하였으나, 리눅스 OS와 파일 모두 64비트임을 확인하였다. ubuntu에서 빌드하니, permission denied가 떠서 찾은 해결방안이 본문이다. 리눅스 비트 확인하는 방법은 getconf LONG_BIT 이다. 2022. 7. 15.
#pragma once, C++의 header Visual studio로 header file을 하나 만드니 최상단에 #pragma once가 떴다. 그 땐, 뭔지 확인하지 않고 넘어갔다. Ubuntu에서 VS Code로 header 파일을 하나 만드니 아무것도 뜨지 않았다. #pragma once를 써야할까..? #pragma once를 쓰게되면 해당 헤더 파일이 한 번만 빌드가 되도록 한다. 컴파일 단계에서, #include는 모든 파일에 주므로 여기저기서 header 파일이 include 된다면 여러번 중복될 가능성이 있다. 참고로, #pragma once와 같이 include 단계에서 중복을 피하기 위해 #ifndef, #endif를 사용할 수도 있다고 한다. (파일 시작 / 끝 부분에 각각 쓰면 된다.) 2022. 7. 5.
13. C++ Reference, 참조 * 개인공부를 위한 기록입니다. 잘못된 점에 대한 지적 감사드립니다. 저는 MATLAB을 주로 사용하여 연구했던 사람입니다. reference를 왜 쓸까? 라고 생각했을 때, 가장 먼저 떠오른 것은 메모리 측면에서 유리하다'라는 것입니다.(다른 이유가 더 있겠으나 지금 수준에서는 잘 모르겠습니다..) 예제를 보시며 하나씩 파악해 보도록 하겠습니다. 1. 먼저 정수형 변수 n을 하나 선언하겠습니다. int n = 0; // integer의 메모리는 4byte n은 0으로 초기화 되었고, n은 integer이므로 4byte의 메모리에 저장됩니다. 2. n을 지칭하는 reference인 r을 하나 만들어 보겠습니다. int& r = n; reference r을 선언한 것은, 새로운 메모리 할당의 개념이 아닙니.. 2022. 1. 27.
C++ 변수 선언 (uniform initialization), preventing narrow 개인공부를 위한 기록입니다. 잘못된 점에 대한 지적 감사드립니다. C++11 부터는 중괄호와 등호를 이용하여 변수를 선언할 수 있습니다. 중괄호{}를 사용한 변수 선언은 일관된 초기화(Uniform Initialization)라고 합니다. 예시로 확인 하겠습니다. 1. 먼저, 등호를 사용한 초기화 입니다. // 1. 등호를 사용한 초기화 Copy initialization int n1 = { 0 }; int x1[3] = { 1,2,3 }; Point p1 = { 1,2 }; 2. 중괄호를 사용한 변수 선언입니다. // 2. 등호 없이 초기화 Direct initialization int n2{ 0 }; int x2[3]{ 1,2,3 }; Point p2{ 1,2 }; Uniform Initializat.. 2022. 1. 4.
11. 타겟넘버, BFS, 너비우선탐색 * 개인 공부를 위하여 간단하게 정리한 것입니다. * 틀린 부분 지적은 언제나 환영입니다. 지난번 타겟넘버 문제는 DFS를 이용하여 해결하였습니다. 오늘은 BFS를 이용하여 '타겟넘버'를 해결하여 보겠습니다. 이 문제를 BFS로 접근하면 다음과 같이 생각할 수 있습니다. 즉, 첫 번째 numbers의 노드를 기준으로 다음번 노드의 덧셈과 뺄셈한 값을 구하는 방법을 진행합니다. 이렇게 되면 리프노드에는 numbers 노드의 수만큼 덧셈 혹은 뺄셈한 결과가 저장됩니다. 이 리프노드 중에서 target 값과 일치하는 노드의 개수를 구하면 됩니다. 코드는 다음과 같습니다. int solution2(vector numbers, int target) { int ans2 = 0; vector arr_bfs; arr_.. 2021. 9. 13.
반응형