본문 바로가기

분류 전체보기

(134)
[Error]undefined reference to ~ 해결법 vscode로 코딩하고있었는데 이런 에러가 떴다. 이 에러가 뜨는 이유는 링커가 저 `TestClass()`의 위치를 못 찾았기 때문이다. 일단 이것부터 확인하자. - 메소드를 구현했는가? .h에 선언만 해 놓고 .cpp에 구현은 아직 안 한게 아닌가? - .cpp에 scope를 잘 지정했는가? void ClassName::method(){}이렇게 namespace를 잘 지정해줬는가? 위 조건을 지키면 웬만하면 해결된다. 만약 해결되지 않는다면 문법 오류가 아니고 링커 오류다. 링커 오류가 났을 때 해결법은 두 가지다. 1. 생성자 구현을 헤더 파일안에서 inline으로 해주거나, 2. g++로 컴파일할때 링크를 건드리거나. 1. 헤더 안에서 구현하기 간단한 방법이다. 헤더에서 구현해버리자. 대신 이렇게..
[Remote API] 외부 컴퓨터에서도 도커를 이용하기 도커가 깔려 있지 않은 컴퓨터에서도 도커를 이용할 수 있다. 어떻게? 외부에서 접속해서! RemoteAPI를 이용하면 원격으로 도커 데몬에 명령을 내릴 수 있다. pull이나 attach같은 몇몇 복잡한 명령어들은 안되지만, 대부분은 가능하다. 외부에서 apach server를 열어 테스트해보자. 도커 데몬 TCP 소켓 열기 같은 컴퓨터 내에서 프로세스끼리 통신할땐 UNIX소켓, 다른 컴퓨터끼리 네트워크로 통신할 땐 TCP소켓을 이용한다. 나는 다른 컴퓨터에서 원격으로 이용할 것이니 TCP소켓을 열어준다. 1. TCP소켓 Listen하기 # listen using the default unix socket, and on 2 specific IP addresses on this host. $ service..
[Error] 도커에서 mpirun실행시 errno=1 에러 mpirun을 했는데 이런 에러가 뜬다. > Read -1, expected 13212, errno = 1 원인은 CMA였다. 도커에서 쓰는 네임스페이스가 host와 달라서 그렇다나 뭐라나 해결방법: 도커 안에서 다음 명령을 실행한다. $ export OMPI_MCA_btl_vader_single_copy_mechanism=none 참고 https://github.com/open-mpi/ompi/issues/4948 Vader in a Docker Container · Issue #4948 · open-mpi/ompi Background information What version of Open MPI are you using? (e.g., v1.10.3, v2.1.0, git branch name an..
하이퍼쓰레드 켜고 끄기 하이퍼쓰레딩 확인하기 제일 편한 방법: `lscpu`명령 방법 1; siblings 가 cpu core 2배면 hyperthreading on cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2 방법 2 ; Thread Count가 Core Count의 2배면 hyperthreading on dmidecode -t processor | egrep 'Core Count|Thread Count' | head -2 방법 3; hyperthreading on이면 HTT(Hyper-threading), off면 HTT(Multi-threading) dmidecode -t processor | grep HTT | head -1 하이퍼쓰레드 설정 bash파일 만들기 ..
LiveCD를 이용해서 루트 디렉토리 fsck 실행하기 fsck: file system check . 파일 검사 & 수리하는 명령어. 루트 디렉토리에 fsck를 실행하면 아래와 같은 경고문구가 뜨며 실행이 되지 않는다. 뭐시기뭐시기/ is mounted. Cannot continue, aborting. 이유는 루트 디렉토리가 mount된 상태이기 때문이다. liveCD를 이용해서 루트 디렉토리에 fsck를 실행하는 방법을 알아보자. 1. Live CD ( Install USB )에서 Try Ubuntu 실행 컴퓨터를 재시작한다. F11을 눌러 부팅 디스크를 _ubuntu install usb_로 선택한다. USB로 부팅이 됐다면 Try Ubuntu를 실행한다. Nvidia 그래픽카드를 쓰는 경우 만약 Nvidia 그래픽카드를쓴다면 Try Ubuntu가 실행이..
도커에서 HPL 이용하기 도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테# 도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테이너를 사용하는 방법을 알아보자. 아직 도커에 HPL이나 linpack의 공식 이미지가 없다. (2019.09.24. 기준) 그래서 그냥 내가 만들어 쓰기로 했다. 목차: 0. HPL과 준비물 컨테이너에서 직접 실행시켜보기 Dockerfile 작성하기 컨테이너 실행 확인하기 HPL이 뭔가? 우선 HPL이 무엇인지 감부터 잡아보자. HPL은 "High-Performance Linpack"의 약자인데, 여기서 Linpack은 벤치마크 프로그램 이름이다. 즉, HPL은 "High-Performace Com..
내가 만든 프로그램을 터미널에서 명령어처럼 사용하기 방법은 두 가지 1. 환경변수에 프로그램을 등록하는 방법 2. 프로그램 자체를 path 폴더에 넣는 방법 환경변수에 프로그램 등록하기 $ export PATH=$PATH:/any/folder/you/want $ echo $PATH # PATH 확인하기 $ source ~/.bashrc https://askubuntu.com/questions/500775/permanent-path-variable
C/C++에서 다른 프로그램 실행하기 https://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1044654269&id=1043284392 불러오는 중입니다...