인기 글
-
C++
[Error]undefined reference to ~ 해결법
vscode로 코딩하고있었는데 이런 에러가 떴다. 이 에러가 뜨는 이유는 링커가 저 `TestClass()`의 위치를 못 찾았기 때문이다. 일단 이것부터 확인하자. - 메소드를 구현했는가? .h에 선언만 해 놓고 .cpp에 구현은 아직 안 한게 아닌가? - .cpp에 scope를 잘 지정했는가? void ClassName::method(){}이렇게 namespace를 잘 지정해줬는가? 위 조건을 지키면 웬만하면 해결된다. 만약 해결되지 않는다면 문법 오류가 아니고 링커 오류다. 링커 오류가 났을 때 해결법은 두 가지다. 1. 생성자 구현을 헤더 파일안에서 inline으로 해주거나, 2. g++로 컴파일할때 링크를 건드리거나. 1. 헤더 안에서 구현하기 간단한 방법이다. 헤더에서 구현해버리자. 대신 이렇게..
-
linux
도커로 아파치 웹 서버 구축하기
도커에서 아파치 컨테이너로 웹 서버를 실행해보자. dockerfile을 작성하는 방법과, 작성하지 않는 방법이 있다. 이 포스팅에서는 작성하지 않는 방법으로 실행해본다. 이미지를 다운받아서 실행하면 된다. 간-단! 목차: 1. 아파치 이미지 다운받기 2. 컨테이너 실행하기 3. 서버 실행 확인하기 4. 기타 팁 1. 아파치 이미지 다운받기 1 $ docker pull httpd:latest cs pull명령어로 이미지를 다운받는다. 공식 아파치가 httpd고, 혹시 다른 아파치를 받고싶다면 `$ docker search apache`로 검색해보자. 2.아파치 컨테이너 실행하기 · 기본적인 옵션만 주고 아파치를 실행하는 방법: 1 $ docker run -d --name apache -p 8080:80 h..
-
linux
docker에서 컨테이너 gui 실행하기
우분투의 그래픽은 시스템이 아니다. 프로그램이다. 그래서 리눅스 서버버전을 실행하면 gui가 없던 것!! 우분투는 `Xorg`라는 그래픽 프로그램을 이용한다. 즉, 얘가 있어야 그래픽을 띄워줄 수 있다는 얘기. 그럼 도커에서 그래픽을 띄워주려면? 호스트의 자원을 공유하면 된다. 호스트의 Xorg를 컨테이너가 이용하면 된다는 말. 실행옵션을 추가해주면 컨테이너에서도 그래픽을 볼 수 있다. 도커를 gui로 실행하는 방법은 두 가지가 있다. 1. VNC를 이용하거나 2. 단순히 XServer를 공유하거나. VNC를 이용하는 방법은 여기와 여기를 참고하자. Xauthority 어쩌구저쩌구한다. ...더보기 Xauthority becomes an issue with newer systems. I can eithe..
-
Tips
파이썬과 C++ 차이점 정리
파이썬을 공부하면서 C++과 다른점들을 메모해두고 있다. 마지막 업데이트 : 2020.05.03 (댓글로 알려주신 내용 추가) 0. 기본 문법 C++은 int a, int b이렇게 해야하지만 파이썬은 그냥 a, b이렇게 쓴다. 또, 한번에 여러 개의 변수를 선언하는 방법도 다르다. C++은 int a = 3, b = 2; 파이썬은 a,b = 2,3 이렇게 한다. 변수랑 값을 끼리끼리 모아놓는다. 추가) C++에서 파이썬처럼 선언하는 법 : auto[a,b,c] = make_tuple(1,3,5); 사용할땐 그냥 a b c 따로따로 쓰면된다. C++17부터 가능하다고 한다! 또한 파이썬은 ;과 {블록} 을 쓰지 않는다. 함수 범위는 들여쓰기(tab 혹은 space 4칸)으로 구분한다. 참 요상한 언어야....
-
C++
error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다.
아무리 코드를 봐도 원인을 못 찾던 오류다. 구글링해봤지만 구글링해도 답이 안 나오던 오류 스스로 답을 찾았다. 해결법 1. #paragma once 헤더 선언 시, 여러번 중복되어 include되면 오류가 발생할 수 있다. 맨 첫줄에 #pragma once를 넣어 한 번만 include하도록 고쳐 주자. 해결법 2. 클래스 간 include관계 수정 내 문제는 이거였다. 해결법 1을 써도 안 되던 경우. 클래스 간의 관계를 확인해보자. 아래 코드를 보면 Store클래스와 NPC클래스가 서로 include하고 있다. 바로 이 때문에 오류가 났던 것! Store를 컴파일하려면 NPC가 필요하고, NPC를 컴파일하려면 Store가 필요하고, 그럼 또 Store에서는 NPC가 필요하고.. `Store.h`의 ..