Есть программа:
- Код: Выделить всё
[doj@korica ~]$ cat test.pas4
uses
cwstring;
begin
end.
Программа не компилируется, потому что не видит /usr/local/lib/libiconv.so:
- Код: Выделить всё
[doj@korica ~]$ fpc test.pas4
/usr/bin/ld: cannot find -liconv
test.pas4(4,1) Error: Error while linking
test.pas4(4,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
- Код: Выделить всё
[doj@korica ~]$ ldconfig -r | grep iconv
20:-lkiconv.4 => /lib/libkiconv.so.4
169:-liconv.3 => /usr/local/lib/libiconv.so.3
177:-lbiconv.2 => /usr/local/lib/libbiconv.so.2
443:-lkiconv.3 => /usr/local/lib/compat/libkiconv.so.3
Конкретно -liconv нельзя сконфигурировать через ldconfig, потому что ldconfig во FreeBSD видит только либы в форме lib*.so.[0-9], несмотря на то, что libiconv.so на самом деле есть.
Что делать в такой ситуации? Конфигурировать систему, насильно упихивая libiconv.so, не хочется (не всегда есть рут, программа хуже переносится), насильно в мейкфайле заставлять fpc брать -liconv.3 тоже (вдруг будет не 3, а другое число?), хочется как-то универсально намекнуть fpc что-нибудь в духе «ищи -liconv.N с максимальным числом, если -liconv нет».
Есть идеи что делать в такой ситуации?