Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Нужно создать Makefile  (Прочитано 2100 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Нужно создать Makefile
« : 28 Июля 2016, 12:44:45 »
Здравствуйте!

Мне нужно скомпилировать программу в командной строке. Нужна помощь с созданием Makefile. Вот как он выглядит в данный момент

(Нажмите, чтобы показать/скрыть)

При попытке скомпилировать выдаёт это

(Нажмите, чтобы показать/скрыть)

То есть я как-то не правильно подключил библиотеки /usr/lib/i386-linux-gnu/libpthread.so и /usr/lib/i386-linux-gnu/libpthread.a.

Помогите разобраться что я сделал не так?

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #1 : 28 Июля 2016, 14:34:11 »
что я сделал не так?

Всё!
Ты читал прикреплённую здесь тему? https://forum.ubuntu.ru/index.php?topic=100976.0

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #2 : 28 Июля 2016, 16:32:07 »
Читал и пробовал. Не вышло. Вот Makefile который я создал по этой статье.

(Нажмите, чтобы показать/скрыть)

Тут у меня возникла проблема с библиотекой boost_regex. Её с помощью pkg-config --list-all я не нашёл. Ну фиг с ним с бустом, решил просто для пробы скомпилировать проект. Выходит это Makefile:13: *** пропущен разделитель (не имели ли вы в виду TAB вместо восьми пробелов?).  Останов.. Поэтому я решил попробовать создать Makefile по другой статье, где всё проще https://habrahabr.ru/post/155201/.

Что значит всё не так? Проект из статьи у меня скомпилировался, а вот мой не собираеться из-за библиотек. В статье ничего о них не сказано. Подскажите кто-нибудь, как же мне подключить к проекту эти библиотеки http://ipic.su/img/img7/fs/lib.1469635848.png ?

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #3 : 28 Июля 2016, 19:58:42 »
gunsoy, не используй пробелы для отступов. Используй табы. (некоторые программы заменяют табы на пробелы).
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #4 : 29 Июля 2016, 05:08:12 »
Спасибо за подсказку. Табы помогли. Но появились другие проблемы

(Нажмите, чтобы показать/скрыть)

И ещё бы знать, как подключить к компиляции boost_regex. Какая-же проблема этот Makefile.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #5 : 29 Июля 2016, 14:05:44 »
gunsoy, в Makefile можно не пересуложнять со всякими переменными, а вставить команду, как если бы собирал из терминала. Просто вызов g++(или что нужно), после чего прописать имена файлов и флаги компиляции.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #6 : 29 Июля 2016, 14:25:15 »
Похоже, у тебя Makefile лежит не рядом с исходниками, а в другой директории. Не копируй бездумно, а разбирайся в написанном примере.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #7 : 29 Июля 2016, 19:06:17 »
gunsoy, в Makefile можно не пересуложнять со всякими переменными, а вставить команду, как если бы собирал из терминала. Просто вызов g++(или что нужно), после чего прописать имена файлов и флаги компиляции.

Ну в общем остановился на этом варианте. И методом тыка получилось скомпилировать проект. Проверил его, он работает.

Вот как выглядит самый простой Makefile
all:
g++ -g main.cpp Fight.cpp Game.cpp ListenThread.cpp Location.cpp TCPProv.cpp TCPProvLocation.cpp TCPServer.cpp WorkerThread.cpp -L/usr/lib/i386-linux-gnu/ -pthread -lcrypto -lpthread -lssl -lboost_regex -o tcpserver

Всем спасибо за помощь. Завтра попытаюсь запустить gdb отладку.

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Re: Нужно создать Makefile
« Ответ #8 : 30 Июля 2016, 21:51:04 »
-L/usr/lib/i386-linux-gnu/
Это указывать не надо, т.к. он обычно есть в путях поиска по-умолчанию (если ты, конечно, в 32-х битной системе)

 

Страница сгенерирована за 0.045 секунд. Запросов: 25.