Ошибка «файл не найден» при создании статической библиотеки в c с использованием gcc - linux - PullRequest
2 голосов
/ 15 октября 2010

У меня есть файл hello.c

#include<stdio.h>

void hello()
{
    printf("Hello!\n");
}

Заголовок hello.h

#ifndef _hello_
#define _hello_

void hello();

#endif

main.c

#include<stdio.h>
#include "hello.h"

int main()
{

  hello();
  return 0;
}

Я сейчас нахожусь впапка / home / пользователь / имя / программы

Я пытаюсь собрать статическую библиотеку mylib.a.Вот что я делаю, чтобы построить его

1. gcc -c hello.c 
2. ar rcs mylib.a hello.o
3. gcc -static main.c -L/home/user/name.programs -lib -o hello

Я получаю следующую ошибку

/usr/bin/ld: cannot find -lib
collect2: ld returned 1 exit status

Мои вопросы

`1. why is gcc searching for the file in the folder /usr/bin - I understand this is   
    what is happening ?
 2. How do I fix this?`

1 Ответ

0 голосов
/ 15 октября 2010

Изменить имя библиотеки, чтобы начать с lib

ar rcs libmy.a hello.o
       ^^^^^^^
gcc -static main.c -L/home/user/name.programs -lmy -o hello
                                              ^^^^^  

И это не поиск в /usr/bin. Ошибка разделяется компоновщиком (ld), который находится в /usr/bin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...