본문 바로가기

Developement/C/C++

libcurl 을 MinGW-W64 에서 빌드시 오류 해결 방법

 CURL(libcurl) 7.54.1 을 MinGW-W64 와 M-SYS 를 이용한 환경에서 빌드 하려고 하면 다음 화면처럼 오류를 뿜고는 진행이 안되는 경우가 많다.



보통 ./configure 를 통해서 자동으로 설정된 상태로 진행을 하게 되는데, curl 의 경우 MinGW-W64 (또는 M-SYS 내장 MinGW 도 동일) 에서 마지막 curl.exe 를 빌드 하는 와중 cur_easy_getinfo() 함수 등으로 link 실패로 이를 진행 하지 못하는 버그가 있다.



 이는 Makefile 상에서 만들어진 버그 또는 환경 버그 정도일수 있어 보이는데, 간단히 export 로 CFLAGS 에 CURL_STATICLIB 을 지정해 주면 된다. 분명 ./configure 상채로 staticlib 생성이 지정이 되어 있는데 왜 이게 빠지는지는 curl 자체에서 해결 되어야 할 문제 이므로, 일단 MinGW-W64 사용자들은 다음과 같이 config-mingww64.sh 와 make-mingww64.sh 처럼 스크립트를 만들어 수행 하면 이를 해결 할 수 있게 된다.



#!/bin/sh
export CFLAGS="${CFLAGS} -DCURL_STATICLIB"
./configure



#!/bin/sh
export CFLAGS="${CFLAGS} -DCURL_STATICLIB"
make


이걸로 libcurl 을 가져다 쓰는 Happy programming 이 되길 ...