2013-10-02 2 views
-2

У меня есть файл crt284utest.c и crt_284u.so. В файле crt284utest.c я использовал dlopen(), dlclose(), dlsym(). Теперь я пытаюсь скомпилировать с помощью следующих команд: НКУ с -O crt284utest.c При составлении вышеуказанной команды ошибка заключается в следующем: gcc.real: C: Нет такого файла или каталога , а затем Gcc crt_284u.o -ldl -o crt284utest при составлении вышеуказанной команды ошибка заключается в следующем: gcc.real: crt_284u.o: Нет такого файла или каталогаКак связать и скомпилировать файлы .c и .so в linux

+1

Это не 'c', это' -c'. Прямо сейчас вы пытаетесь скомпилировать * исходный файл с именем 'c', когда вы хотите передать опцию' -c', чтобы сообщить компилятору создать объектный файл. Это должно быть довольно ясно, просто прочитав сообщение об ошибке. –

+1

Поскольку объектный файл имеет имя 'crt284utest.o', а не' crt_284u.o'. –

ответ

2

Здесь вы идете, как компилировать в Linux с помощью GCC ::

$ gcc -o firstprogram firstprogram.c

Если ваш файл имеет имя firstprogram.c, тогда введите '-o firstprogram' в качестве параметра gcc. Это в основном ваше предложенное имя для исполняемого файла, который будет создан gcc. В случае, если вы ввели что-то вроде следующего

$ Gcc firstprogram.c

Вы бы быть с a.out в том же каталоге, что и файл исходного C. Это имя исполняемого файла по умолчанию, созданного gcc. Это создаст проблемы при компиляции многих программ в одном каталоге. Таким образом, вы переопределить с помощью опции -o, за которым следует имя исполняемого файла

$ НКУ -o привет secondprogram.c

бы создать исполняемый файл под именем привет для исходного кода с именем secondprogram.c

Запуск созданного вами исполняемого файла так же просто, как ввести следующее в командной строке.

$ ./firstprogram ИЛИ $ ./hello

Смежные вопросы