고수님들 도와주세요!!
글쓴이: 익명 사용자 / 작성시간: 월, 2019/10/14 - 11:48오전
$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-msys/7.4.0/lto-wrapper.exe Target: i686-pc-msys Configured with: /msys_scripts/gcc/src/gcc-7.4.0/configure --build=i686-pc-msys --prefix=/usr --libexecdir=/usr/lib --enable-bootstrap --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --with-arch=i686 --with-tune=generic --disable-multilib --disable-sjlj-exceptions --enable-__cxa_atexit --with-dwarf2 --enable-languages=c,c++,fortran,lto --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --disable-libssp --disable-win32-registry --disable-symvers --with-gnu-ld --with-gnu-as --disable-isl-version-check --enable-checking=release !!!!!!--without-libiconv-prefix!!!!! --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible Thread model: posix gcc version 7.4.0 (GCC)
제가 사용하고 있는 gcc의 정보입니다. 다름아니라 저기 안에있는 --without-libiconv-prefix를 변경하고 싶은데.. configure 파일이 아무리찾아도 보이지가 않습니다. 혹시 다른 방법이 있을까요?
Forums:
해당 옵션은 gcc 가 빌드 될 때의 옵션인데,
해당 옵션은 gcc 가 빌드 될 때의 옵션인데, gcc 를 다시 빌드 하려고 하는 건가요?
그리고, linux 의 경우 glibc 에 libiconv 보다 더 좋은 iconv 가 이미 내장 되어 있기 때문에 (심지어는 -liconv 를 주지 않아도 됩니다.) 해당 옵션은 신경쓸 필요도 없을 것 같습니다.
linux 라면 iconv 에 대해서는 잊어버리시는 것을 권장 합니다. 괜히 libiconv 설치 했다가 헷갈리기만 합니다.
답변 감사합니다.
다름아니라 iconv를 쓰고싶어서요.. euc-k4 을 ut8로 변환해야하는 코드를 작성해야되서 사용하려고 하는데 undefined reference to iconv 에러가 떠서요
아.. windows 군요. 그럼 제가 적은 내용은
아.. windows 군요. 그럼 제가 적은 내용은 무시 하시면 됩니다. 제가 적은 것은 linux 의 경우이고요. windows 에서는 windows 용 libiconv 를 설치 하시고, compile line 에 gcc link 옵션에 -liconv 랑 같이 빌드 하시면 됩니다.
만약 다른 architecture 를 cross compile 하시는 것이라면 libiconv 역시 corss compile 된 것을 link 해 주어야 합니다. 보통 IDE 에서는 library path와 header search path, library link 를 GUI 로 설정을 하게 되던데, 이건 저도 가끔만 사용해서 설명을 못해 드리겠고, Gcc command line 옵션에서는
c:\source\libiconv\lib\libiconv.dll
c:\source\libiconv\include\iconv.h
경로에 설치가 되어 있다고 한다면
object 빌드 라인에는
binary 나 object link 라인에서는
이렇게 추가해 주면 됩니다.
계속 여쭤봐서 죄송합니다 ㅠㅠ
제가 Make -j4 flash로만 컴파일을 해봐서 gcc test.c -Ic:/source/libiconv/include 이런식으로 하라는 말씀이신가요?
이미
이미 여러가지 component path지정이 되어있어서 추가로 iconv만 추가하는 방법은 없을까요?
make 명령을 이용하신 다면 Makefile 에서
make 명령을 이용하신 다면 Makefile 에서 undefined symbol 이 발생하는 곳에 추가해 주시면 됩니다.
IDE 를 이용하여 빌드 하는 것이라면, 해당 IDE 에서 library link 를 어떻게 지정하는지 찾아 보세요.
정말
감사합니다. 저도 언젠간 도움을 주는 입장이 되기를..
댓글 달기