LNK2019 _main"int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 함수에서 참조되는 확인할 수 없는 외부 기호

이 에러는 대부분의 경우 현재 프로젝트에 main() 함수가 없어서 생깁니다. 아무 메인 함수나 만들어주면 잘 실행됩니다. 예를 들어 int main() { return 0; } 과 같은 빈 메인 함수 하나만 넣어 주셔도 됩니다.

[Git] 다른 브랜치와 합치지는 않되 특정 커밋은 가져오고 싶은 경우


여러 브랜치에서 작업을 하다가 공통된 코드에 변경이 있을 경우, 병합은 하지 않으면서 똑같은 커밋을 여러 브랜치에서 사용하고 싶을 때가 있습니다. 그럴 때에는 체리픽 (cherry-pick) 명령어를 사용하면 됩니다.


// 만약에 브랜치1에 있는 abcd1234라는 SHA-1 ID로 시작하는 커밋을 브랜치2에 적용시키려면


git checkout 브랜치2

git cherry-pick abcd1234


[JUnit] 명령줄(커맨드 라인)에서 JUnit 실행하기


명령줄(커맨드 라인)에서 JUnit을 실행하시려면 다음과 같이 하시면 됩니다. 리눅스와 윈도에서의 명령어가 조금 다른데, 리눅스에서는 :을 쓰고 윈도에서는 ;을 씁니다. 한편 JUnit 버전(4.x와 3.x)에 따라서도 명령어가 조금 달라집니다.


실행하실 때 test class name은 현재 디렉토리 혹은 path에 지정된 디렉토리에 있어야 합니다.


< JUnit 4.x >


리눅스

java -cp .:/path/to/junit_4.x/junit.jar org.junit.runner.JUnitCore [test class name]


윈도

java -cp .;/path/to/junit_4.x/junit.jar org.junit.runner.JUnitCore [test class name]


< JUnit 3.x >


리눅스

java -cp .:/path/to/junit_3.x/junit.jar junit.textui.TestRunner [test class name]


윈도

java -cp .;/path/to/junit_3.x/junit.jar junit.textui.TestRunner [test class name]


[Git] fatal: The remote end hung up unexpectedly


git push를 했는데 fatal: The remote end hung up unexpectedly 이라는 에러 메시지가 뜰 때가 있습니다. 크기가 1MB 보다 큰 파일이 있을 경우 이 에러가 발생합니다. 이럴 때에는 git 설정에서 개별 파일의 최고 크기를 늘려주면 됩니다. 예를 들어 20MB 짜리 파일이 있다면 20MB = 20 * 1024 * 1024 = 20971520 bytes 이므로,


git config --global http.postBuffer 20971520


이라고 해 준 뒤에 다시 git push를 하시면 됩니다.


( 참고한 사이트: https://confluence.atlassian.com/bitbucketserverkb/git-push-fails-fatal-the-remote-end-hung-up-unexpectedly-779171796.html )

  1. Cargold 2020.01.01 16:22 신고

    ㅠㅠ 정보 감사합니다.

[LaTeX] latex에서 한글 사용하기


\usepackage{kotex}


를 추가하시면 LaTeX에서 한글을 사용할 수 있습니다.

선언해놓고 사용하지 않은 변수가 있으면 원래는 컴파일러가 경고를 합니다. 그런데 변수 앞에


__attribute__((unused))


를 써 놓으면 컴파일러가 경고를 하지 않습니다.

You may have to install OPENSSL in your system and/or pass OPENSSL_DIR or OPENSSL_INCDIR to the luarocks command.


이런 메시지가 뜨고 Luarocks 진행이 안 되면 (우분투 기준) sudo apt-get install libssl-dev 으로 libssl-dev를 설치해주시면 됩니다.

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable


이 에러는 64비트 리눅스에서 32비트 하둡을 돌려서 생긴다고 합니다.

hadoop-env.sh 나 .bashrc나, 어디에든 다음을 추가해주면 해결됩니다.

원래는 $HADOOP_HOME/lib 으로 되어 있는 부분을 $HADOOP_HOME/lib/native 로 바꾸면 됩니다.


원래는 export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_PREFIX/lib" 이었던 것을 export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_PREFIX/lib/native" 로 바꾸시면 됩니다.

The processing instruction target matching "[xX][mM][lL]" is not allowed.


XML 파일이 파일 선언으로 시작되지 않을 때 나오는 오류 메시지입니다.

파일의 맨 처음 부분에 공백이나 주석이 있으면 이런 오류가 발생합니다.

E0201 15:14:22.851824 18611 common.cpp:104] Cannot create Cublas handle. Cublas won't be available.

E0201 15:14:22.859390 18611 common.cpp:111] Cannot create Curand generator. Curand won't be available.

F0201 15:14:22.868336 18611 syncedmem.hpp:18] Check failed: error == cudaSuccess (30 vs. 0)  unknown error


CUDA를 사용하려고 할 때에 이런 에러 메시지가 뜰 때가 있습니다. 모든 설치 과정을 올바르게 마쳤는데도 이런 에러 메시지가 뜬다면


cd /home/[자기 계정]/NVIDIA_CUDA-7.5_Samples/0_Simple/matrixMulDrv

make

sudo ./matrixMulDrv


해서 관리자 계정으로 CUDA 예제를 한 번 돌리면 문제가 해결됩니다. CUDA는 설치한다고 끝이 아니고, 설치한 후에 한 번 사용해줘야 그 다음부터 제대로 돌아가는 듯 합니다. 만약 위의 방법으로 안 된다면 예제 디렉토리에 있는 다른 예제들을 두세 개 정도 더 실행해 보세요.


( 간접적인 힌트를 얻은 곳: https://groups.google.com/forum/#!topic/caffe-users/DeLNtQ9i0HY )

 

+ Recent posts