0
Найти на сайте: параметры поиска

 

 

компиляция C программ

  
Сообщений: 0
В Mint есть небольшая проблема для тех, кто собирается писать программы: при сборке простейшей программы, чуть сложнее Hello World smile , или сборке проектов которые годами собирались в других дистрибутивах, или при повторении примеров из статей или книг ... у вас могут быть такого типа странные ошибки ... что-то типа такого:
[code=Cj
@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall -lm ctst.c -o ctst
/tmp/ccDNNiCu.o: In function `main':
ctst.c:(.text+0x1a): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
[/code]
Что означает, что линкер ld не может найти и связать код со стандартной математической библиотекой libm.so.
Хотя если вы проверите, то библиотека на месте, и все условия её поиска в системе соблюдены.
И так будет со всеми библиотеками C (кроме стандартной libc.so)! scratch

Что и почему так происходит, кто интересуется, найдёте здесь... - gcc в Mint собран с опцией ... экономить до 5% на сборке crazy
Такое уже было ... в AltLinux времени 2008г. и др.

Вопрос не в том что происходит, а в том как лечить: набирайте в командной строке имя библиотеки после имени файла, из которого она вызывается:
Код C:
  1.  
  2. olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall ctst.c -o ctst -lm
  3. olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ ldd ctst
  4. linux-gate.so.1 => (0xb7738000)
  5. libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb76d7000)
  6. libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7529000)
  7. /lib/ld-linux.so.2 (0xb7739000)
  8. olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ ./ctst
  9. 3.000000
  10.  
Или так:
Код С:
  1.  
  2. olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall ctst.c -lm -o ctst
  3.  
Очень неприятная особенность.
В начало страницы 
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.