Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Linux для начинающих

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.10.2013, 18:04   #41
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Еще раз повторю, мой Makefile уже исправлен, он корректный. Я умею работать с make и в выложенном выше файле отступы в порядке. Попытка подсунуть файл с неправильными отступами заставляет make ругаться на символы. В приведенном мной листинге make не ругается. Просто не выполняется этап компиляции. Кроме того build_dir/target-_- какое-то странное название каталога. Наводит на мысль что где-то что-то не объявлено.
SilverSwift вне форума   Ответить с цитированием
Старый 14.10.2013, 19:43   #42
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Сделал distclean, обновил все исходники, пересобрал заново SDK и тулчейн, программа собралась без вопросов. Похоже действительно попортил какие-то объявления нужные кросс-компилятору.
SilverSwift вне форума   Ответить с цитированием
Старый 14.10.2013, 21:11   #43
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Все это здорово, но как подцепить STL?

Компилятор не видит даже iostream...
SilverSwift вне форума   Ответить с цитированием
Старый 17.10.2013, 21:03   #44
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

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

Для проекта из файликов helloworld.cpp, class.cpp и class.h Makefile будет выглядеть так:
Цитата:
include $(TOPDIR)/rules.mk

PKG_NAME:=helloworld
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

TARGET_LDFLAGS+= -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib -Wl,-rpath=$(TOOLCHAIN_DIR)/lib

include $(INCLUDE_DIR)/package.mk

define Package/helloworld
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Simple helloworld app
DEPENDS:=+libstdcpp +libc
endef

define Package/helloworld/description
Mine helloworld project.
endef

define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef

define Build/Compile
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $(PKG_BUILD_DIR)/helloworld.o $(PKG_BUILD_DIR)/helloworld.cpp
$(TARGET_CXX) $(TARGET_CXXFLAGS) -c -o $(PKG_BUILD_DIR)/class.o $(PKG_BUILD_DIR)/class.cpp
$(TARGET_CXX) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/helloworld $(PKG_BUILD_DIR)/helloworld.o $(PKG_BUILD_DIR)/class.o
endef

define Package/helloworld/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/bin/
endef

$(eval $(call BuildPackage,helloworld))
Естественно, можно написать Makefile изящнее.
SilverSwift вне форума   Ответить с цитированием
Старый 30.10.2013, 01:20   #45
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Скажите пожалуйста, я правильно понимаю, что после компиляции, репозиторием становится папка /trunk/bin/atheros/packages ?
И что бы пакеты вошли в этот реп, надо указывать их в menuconfig как модули?

Последний раз редактировалось stD; 30.10.2013 в 04:47.
stD вне форума   Ответить с цитированием
Старый 30.10.2013, 04:43   #46
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

После компиляции появляется несколько *.bin фаилов, а каким из них прошивать?

openwrt-ar71xx-generic-tl-mr3020-v1-jffs2-factory.bin
openwrt-ar71xx-generic-tl-mr3020-v1-jffs2-sysupgrade.bin
openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-sysupgrade.bin
...
stD вне форума   Ответить с цитированием
Старый 30.10.2013, 06:13   #47
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Цитата:
define Package/mr/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mr $(1)/bin/
endef

$(eval $(call BuildPackage,mr)
Здесь ошибка: $(eval $(call BuildPackage,mr), нет второй скобки.
$(eval $(call BuildPackage,mr))
stD вне форума   Ответить с цитированием
Старый 30.10.2013, 06:34   #48
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

А я правильно понимаю, что после компиляции отдельного пакета (make package/mr/compile V=s), достаточно скопировать его в репозиторий (например репа на флешке) вместе с файлом Packages ? То есть не нужно роутер заново прошивать?

Последний раз редактировалось stD; 30.10.2013 в 06:36.
stD вне форума   Ответить с цитированием
Старый 30.10.2013, 11:06   #49
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Сообщение от mebitek Посмотреть сообщение
Скажите пожалуйста, я правильно понимаю, что после компиляции, репозиторием становится папка /trunk/bin/atheros/packages ?
И что бы пакеты вошли в этот реп, надо указывать их в menuconfig как модули?
Да
Admin вне форума   Ответить с цитированием
Старый 31.10.2013, 21:09   #50
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Цитата:
А я правильно понимаю, что после компиляции отдельного пакета (make package/mr/compile V=s), достаточно скопировать его в репозиторий (например репа на флешке) вместе с файлом Packages ? То есть не нужно роутер заново прошивать?
Достаточно *.ipk файл кинуть на роутер любым удобным способом, а потом установить его с помощью opkg (opkg install <path to *.ipk>).
SilverSwift вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 13 (пользователей: 0 , гостей: 13)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 10:28. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика