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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.10.2013, 15:46   #1
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
По умолчанию

Удалите в makefile все пробелы в начале каждой строки и вместо них поставьте табуляцию
Admin вне форума   Ответить с цитированием
Старый 14.10.2013, 15:51   #2
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Makefile писан правильно. Проблема в чем-то другом.
SilverSwift вне форума   Ответить с цитированием
Старый 14.10.2013, 15:55   #3
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

Makefile приложил... На всякий случай.
Вложения
Тип файла: zip Makefile.zip (519 байт, 177 просмотров)
SilverSwift вне форума   Ответить с цитированием
Старый 14.10.2013, 17:52   #4
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
По умолчанию

Написан он правильно, но когда его нв форум выложили, то форумный движек его покалечил
Я сам лично пробовал Makefile из шапки и он не компилировался, пока не поменял все пробелы на Tab
Admin вне форума   Ответить с цитированием
Старый 14.10.2013, 18:04   #5
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   #6
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию

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

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

Компилятор не видит даже iostream...
SilverSwift вне форума   Ответить с цитированием
Старый 17.10.2013, 21:03   #8
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   #9
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, 11:06   #10
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 вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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