AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 445374
Accepted
msam
msam
Asked: 2018-05-23 06:59:56 +0800 CST2018-05-23 06:59:56 +0800 CST 2018-05-23 06:59:56 +0800 CST

compilando o i3 no cygwin - não é possível encontrar a biblioteca libiconv

  • 772

Estou tentando compilar o i3 versão 4.14.1 no Cygwin 2.884 (Windows 7). Instalei a biblioteca libiconv necessária por meio da configuração do Cygwin, mas ao executar ./configure recebo este erro:

configure: error: in `/home/msamec/Downloads/i3-4.14.1/x86_64-unknown cygwin':
configure: error: cannot find the required iconv_open() function despite trying 
to link with -liconv
See `config.log' for more details

Alguma pista do que posso fazer para ajudá-lo a encontrar a biblioteca?

Tentei compilar a biblioteca libiconv-1.13.1 manualmente, mas encontrei alguns erros que não sei como resolver:

libtool: link: /bin/gcc -shared  .libs/localcharset.o .libs/relocatable.o      -o .libs/cygcharset-1.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libcharset.dll.a
.libs/relocatable.o: In function `DllMain':
/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib/./relocatable.c:324: undefined reference to `cygwin_conv_to_posix_path'
/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib/./relocatable.c:324:(.text+0x113): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_posix_path'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:59: libcharset.la] Error 1
make[2]: Leaving directory '/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib'
make[1]: *** [Makefile:34: all] Error 2
make[1]: Leaving directory '/home/msamec/Downloads/libiconv-1.13.1/libcharset'
make: *** [Makefile:42: lib/localcharset.h] Error 2

Eu peguei o nome da função iconv_open () e o encontrei na pasta cygwin

/usr/i686-pc-cygwin/sys-root/usr/include/iconv.h

e também na pasta libiconv

/usr/include/iconv.h

Mas, por algum motivo, o script de configuração não consegue encontrá-lo.

Aqui está o meu config.log

Aqui está meu iconv.h https://gist.github.com/anonymous/0b117d1680954d591f989256b508bfc5

Eu verifiquei onde está este arquivo de biblioteca inconv.h localizado no Ubuntu. Unlinke no cygwin está em /lib/ enquanto no cygwin está aqui /usr/include/. Tentei copiar a biblioteca para esse local, mas também não ajudou. Também consegui reproduzir o problema no meu Windows 10 doméstico.

EDIT: Aqui está o arquivo de configuração que estou usando: insira a descrição do link aqui

compiling libraries
  • 1 1 respostas
  • 1123 Views

1 respostas

  • Voted
  1. Best Answer
    matzeri
    2018-05-23T20:18:26+08:002018-05-23T20:18:26+08:00

    O teste está falhando como

    | char iconv_open ();
    | int
    | main ()
    | {
    | return iconv_open ();
    |   ;
    |   return 0;
    | }
    configure:6391: /bin/gcc -o conftest.exe    conftest.c -liconv  -lev  >&5
    /tmp/ccz9hxNr.o:conftest.c:(.text+0xe): undefined reference to `iconv_open'
    /tmp/ccz9hxNr.o:conftest.c:(.text+0xe): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `iconv_open'
    

    está procurando iconv_openna biblioteca libiconv, erroneamente. O código de teste deve usar o fornecido /usr/include/iconv.h onde houver um

    #define iconv_open libiconv_open
    

    e a biblioteca cygwin libiconvexporta:

    $ objdump -x /usr/lib/libiconv.dll.a | grep iconv_open
    [  5](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x0000000000000000 libiconv_open_into
    [  6](sec  3)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x0000000000000000 __imp_libiconv_open_into
    [  5](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x0000000000000000 libiconv_open
    [  6](sec  3)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x0000000000000000 __imp_libiconv_open
    

    o símbolo libiconv_open. Você precisa corrigir o teste para usar iconv.h.

    O teste é definido emconfigure.ac

    AC_SEARCH_LIBS([iconv_open], [iconv], , [AC_MSG_FAILURE([cannot find the required iconv_open() function despite trying to link with -liconv])])
    

    uma possível solução alternativa é alterá-lo para algo que teste as duas opções.

    AC_SEARCH_LIBS([iconv_open],[iconv],,
    AC_SEARCH_LIBS([libiconv_open],[iconv],,[AC_MSG_FAILURE([cannot find the required iconv_open() function despite trying to link with -liconv])]))
    

    Isenção de responsabilidade: não testado e você precisa executar autoreconfpara reconstruirconfigure

    • 1

relate perguntas

  • O pacote perl-Net-IP é igual ao pacote Net-IP?

  • Meson não encontra as bibliotecas do Boost

  • Como recompilar tudo eficientemente em um sistema Gentoo Linux?

  • Parábola (semelhante ao Arch) - A atualização do ICU fez com que alguns programas exigissem duas versões diferentes da biblioteca do ICU. Ambos falham ao iniciar. Não pode se reproduzir

  • O OpenVPN auto-compilado não inicia a partir do systemd

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve