Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 53

Как создать .so библиотеку?

01.08.2013, 20:03. Показов 7285. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте, хочу на сервере провернуть работу с файлами, а точнее сделать простое копирование с последующим перемещением. Пример:
Bash
1
2
cp newfile.txt log.txt
mv log.txt mydir/logs/
но чтобы выполнялось это дело при загрузке библиотеки .so
и сразу вопрос, сработают ли такие консольные команды на разных *nix ?

раньше ничего не компилировал под линукс, на своем пк стоит винда.

В .DLL например на C++ это бы выглядело так
C++
1
2
system("copy newfile.txt log.txt");
system("move log.txt mydir/logs/log.txt");
Может быть есть онлайн сервис, где на выходе дается скомпилированный файл? Или на сервере попробовать, стоит centos 6

Грубо говоря ищу сурс где бы в консоль выводилось "hello world" и как это дело скомпилить
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2013, 20:03
Ответы с готовыми решениями:

Создать динамическую библиотеку, вызывающую функцию из статической
Доброго времени суток! тут появилось два вопроса: 1)создать динамическую библиотеку, вызывающую функцию из статической 2)статическую...

Как создать свою библиотеку?
Много времени потратила на поиски какой-нибудь информации о том, как создать статическую библиотеку(не динамическую). Кто-нибудь может...

Как создать библиотеку на Cbuilder?
Как в Cbuilder подключить использование этой библиотеки.Какую лучше Dll или lib Напишите по шагам что сделать.Я делаю впервые.Как ее...

4
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
01.08.2013, 21:52
http://mech.math.msu.su/~zubr/library.html
1
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 53
02.08.2013, 00:23  [ТС]
Читал этот источник и еще парочку.
Взял самый простой вариант, чтобы при подгрузке библиотеки создавался пустой файл
Создал f1.c
C++
1
2
3
4
5
6
#include <stdio.h>
 
void _init(void){
 printf("Load library!\n");
 system(">123test123.txt");
}
Потом
Bash
1
gcc -fPIC -c f1.c
при попытке скомпилить вот так
Bash
1
gcc -shared -o test.so f1.o
Выскакивает вот такая беда
Bash
1
2
3
4
f1.o: In function `_init':
f1.c:(.text+0x0): multiple definition of `_init'
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crti.o:(.init+0x0): first defined here
collect2: ld returned 1 exit status
Там конечно написано как подобное лечится, подставлял названия своих директорий, че-то пишет что файлов которые указал не существует.

Если компилить с ключем -nostartfiles
Bash
1
gcc -nostartfiles -shared -o test.so f1.o
То без ошибок, но при инжекте в процесс приложения библиотеки ничего не происходит.
чет я запутался
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
02.08.2013, 07:35
so.c
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
void _init(void)
{
    printf("Load library\n");
}
 
void f(void)
{
    printf("f\n");
}
 
void _fini(void)
{
    printf("Unload library\n");
}
t.c
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
void f(void);
 
int main(void)
{
    f();
    return 0;
}
Code
1
2
3
4
5
6
7
8
[guest@localhost so]$ .ansi -fPIC -shared -nostartfiles so.c -o libso.so
[guest@localhost so]$ export LD_LIBRARY_PATH=.
[guest@localhost so]$ .ansi -L. -lso t.c -o t
[guest@localhost so]$ ./t
Load library
f
Unload library
[guest@localhost so]$
1
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 53
02.08.2013, 10:53  [ТС]
Спасибо, все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2013, 10:53
Помогаю со студенческими работами здесь

Как создать библиотеку классов
Народ, может кто-то подсказать хороший туторил, или сам разїяснить как создавать библиотеки (dll) на C#?

Как создать библиотеку с иконками?
Тут у меня дилетанский вопрос, как создать библиотечку с иконками, для дальнейшего использования иконок по собственным нуждам, сразу...

Как создать свою библиотеку
Есть несколько понятий в которых путаюсь. библиотека - какой-то файл заголовочный файл - файл с объявлениями (описаниями) как...

Как создать динамическую библиотеку на C# ?
В двух проектах: Редактор для тестов и сама программа для тестирования нужно использовать те же классы. Как создать dll? Почему то в...

Как создать собственную библиотеку?
А как собственно это сделать? Я выбираю файл - шаблон проекта - библиотека классов. Создается проект и нигде нету файла с расширением dll.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru