Объединение двух файлов и создание нового. Файл 1 получил более 100 Colmns, и файл 2 получил 2

Для статического связывания ld не будет выполнять работу по автоматическому поиску зависимостей для wget, как это волшебным образом происходит для общих объектов. Некоторые скрипты пытаются составить такой список за вас, другие - нет. Вы попали в последний случай.

Вам нужно составить список библиотек и их зависимостей самостоятельно.

Если вы еще не знаете, что такое полный список deps для вашего статического wget бинарника, вам нужно сначала собрать его как обычный (разделяемый), а затем получить такой список с помощью ldd /path/to/wget, где /path/to/wget - это ваш бинарник wget (его можно найти в дереве исходников, обычно что-то вроде src/wget)

Вам нужно получить все статические версии разделяемых библиотек. Обычно они содержатся в пакетах -dev или devel, которые предоставляет ваш дистрибутив.

Каждая библиотека в списке должна быть переставлена или добавлена дважды или более раз, потому что ld не пытается искать во всех статических архивах определенный символ и выдает ошибку. Итак, ваша libgnutls.a, вероятно, зависит от libtasn1.a для символов asn1_*. Тогда вам нужно добавить в командную строку следующее: -lgnutls -ltasn1. Если от libtasn1.a зависит еще одна библиотека, то в командную строку ссылки снова нужно добавить.

Неопределенные символы могут быть устранены путем просмотра списка символов статической библиотеки с помощью nm /usr/lib/lib.a. Или найти эту библиотеку в определенном каталоге с помощью fgrep -l имя_символа /usr/lib/*.a. Обратите внимание, что такой поиск (с помощью fgrep) покажет обе библиотеки, требующие и предоставляющие такой символ, так что это только быстрый тест.

Библиотеки могут быть добавлены с помощью переменной LIBS= в сценарий configure: LIBS="-lgnutls -ltasn1".

-1
27.10.2018, 18:15
2 ответа

Попробуйте это,

join <(sort -r file2.csv) <(sort -r file1.csv)  > file3.csv
0
28.01.2020, 05:10

Я думаю, GNU Coreutils join— ваша команда:

join file2.csv file1.csv > file3.csv

Если файлы CSV разделены запятыми, а не символами табуляции, используйте вместо них:

join -t, file2.csv file1.csv > file3.csv

1
28.01.2020, 05:10

Теги

Похожие вопросы