реклама на сайте
подробности

 
 
> Сборка проекта в IAR, Проблема с очерёдностью билда
Ailinor
сообщение Feb 13 2008, 09:50
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 10-05-07
Пользователь №: 27 632



Есть проект, который состоит из нескольких библиотек и исполнимого модуля, который линкует эти библиотеки. Возникла проблема с тем, что собирая весь проект он компилируется в порядке расположения модулей, а не сначала библиотеки, потом исполнимые модули sad.gif Как решить эту проблему, задав очерёдность компиляции?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
zltigo
сообщение Feb 13 2008, 10:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Ailinor @ Feb 13 2008, 12:50) *
Как решить эту проблему...

А порядок компиляции является проблемой? Почему??


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Baser
сообщение Feb 13 2008, 11:35
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Проект или линкуется без ошибок,
или не линкуется и выдаются ошибки, по которым можно понять причину.

А вот чтобы от порядка компиляции модулей зависел результат.... Такого я не слышал sad.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 13 2008, 13:00
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Baser @ Feb 13 2008, 13:35) *
А вот чтобы от порядка компиляции модулей зависел результат.... Такого я не слышал sad.gif
От порядка линковки может.
Можно предположить, что программа на С++ и на работоспособность влияет порядок вызова конструкторов. Увы, 100% переносимый способ - объявление объектов, порядок конструирования которых важен, в одной единице компиляции.

Можно предположить, что в библиотеках собраны некие naked функции, которые должны собраться в определенном порядке в cstartup - тогда лучше выделить каждой функции свой сегмент и указать порядок сегментов в .xcl.

Возможно, надо определенным образом сгруппировать объявленные в библиотеках глобальные переменные. Тоже решается выделением отдельных сегментов и указанием их порядка в .xcl

Мои версии кончились wink.gif
А вот чтоб зависело от порядка компиляции - действительно не встречалось.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016