목록C (14)
준호씨의 블로그
CMake 를 적용 하면 좋은점? 여러 장점이 있지만 개인적으로 느끼는 최고의 장점은 바로 CLion 에서 잘 지원 한다는 점이다. CMake 설정을 안한 CLion 개발 환경은 그냥 조금 더 좋은 에디터 정도이다. CMake 설정을 하면 IntelliJ 에서 Java 프로그래밍을 할 때의 기분으로 C 나 C++ 개발을 할 수 있게 된다. 요즘 레거시 C 코드 작업을 많이 하고 있는데 CLion 이 없었다면 끔찍 했을 거 같다. 간단하게 시작하자 프로젝트 최상위 디렉토리에 CMakeLists.txt 를 만든다. project(myproject C) 를 지정하면 디렉토리명으로 나오던 프로젝트명이 내가 지정한 프로젝트명으로 나온다. 하위 디렉토리에와 연결 lib 디렉토리가 있다고 가정하자. lib 디렉토리에..
빌드한 프로그램이 실행되지 않아서 lldb 로 실행 해 보면 dyld: Library not loaded 가 뜨는 경우가 있다. Process 58785 launched: '/.../myprog' (x86_64) dyld: Library not loaded: libmycore.1.dylib Referenced from: /.../myprog Reason: image not found Process 58785 stopped DYLD_LIBRARY_PATH 설정 로드 되지 않는 libmycore.1.dylib 가 /mylib 에 있다면 DYLD_LIBRARY_PATH 에 추가 해 준다. export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/mylib/ 그래도 안된다면 /usr/lo..
gcc 로 컴파일 할 때 a 라이브러리가 b 라이브러리를 필요로 한다면 -la -lb 이런식으로 라이브러리 옵션을 적어 주어야 한다. a 라이브러리에서 b 라이브러이의 func_b 함수를 호출하는데 -lb 가 없거나 -lb 가 -la 앞에 있다면 a 라이브러리에서 b 라이브러이의 func_b 함수를 찾지 못하게 된다. 그런 경우 빌드 할 때 다음과 같이 undefined reference 오류가 발생하게 된다. a.c:111: undefined reference to `func_b' 공통적으로 참조 하는 라이브러리들은 가급적 뒤쪽에 배치 해 두는 것이 속편하다.
라이브러리 파일은 실행이 안된다고 생각 했는데 실행이 되는 라이브러리들이 있다. libc 실행해 보니 버전 정보를 표시해 준다. $ /lib/libc.so.6 GNU C Library stable release version 2.12, by Roland McGrath et al. Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.4.7 20120313..
GNU Mailutils GNU Mailutils curl curl github 사용법이 간단한편이다. curl 은 보통 http 요청 할 때 많이 사용하는데, curl 을 종종 사용하는 사람들 조차도 smtp 가 된다는 사실에 놀라곤 한다. 문제점 수신자가 여러명일 때 한명이라도 실패 하면 모두 실패한다. 보통 수신자가 여러명일 때 rcpt to 2개 중 1개가 실패 해도 발송이 되어야 되는데 curl 에서는 실패한다. https://github.com/curl/curl/issues/2483 이것은 known issue 이다. 2012년 부터 알려진 이슈이지만 아직 수정 되지 않았다. 짬나면 기여해 봐야 겠다. libquickmail libquickmail curl 을 랩핑 해 둔 라이브러리라고 보면 ..