Автор | Сообщение |
|
| постоянный участник
|
Пост N: 135
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.06.09 16:46. Заголовок: Вопрос о сборке Harbour для MultiThread-режима
Подскажите, пожалуйста, по сабжу. Имеем исходники Harbour (nightly sources). Как я понял, опции компилятору указаны в файле config\win\bcc.cf (для сборки под винду с помощью bcc). В этом файле есть строка: CFLAGS = -q -tWM. Имеет ли опция -tWM отношение к MT-режиму? Судя по тому, что в примерах из папки tests\mt функция hb_mtvm() возвращает .F., harbour собран для обычного режима. Что еще (и где) нужно указать компилятору, чтобы собрать для MT-режима? Спасибо.
|
|
|
Ответов - 5
[только новые]
|
|
|
| постоянный участник
|
Пост N: 696
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.06.09 17:14. Заголовок: PSP пишет: Имеет ли..
PSP пишет: цитата: | Имеет ли опция -tWM отношение к MT-режиму? Судя по тому, что в примерах из папки tests\mt функция hb_mtvm() возвращает .F., harbour собран для обычного режима. |
| Имеет. Не ройте так глубоко Посмотрите есть ли у вас библиотека hbvmmt.lib. Если есть - все хорошо и вы можете создавать MT программы. hb_mtvm() скорее всего возращает .f. потому что вы не подключили при сборке тестовой программы hbvmmt.lib. Чтобы подключить эту библиотеку достаточно hbmk2 передать параметр -mt hbmk2 test.prg -mt test.prg PROCEDURE main ?hb_mtvm()
|
|
|
|
| постоянный участник
|
Пост N: 136
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.06.09 17:59. Заголовок: Да, вроде работает. ..
Да, вроде работает. Спасибо! :) А скажите, Петр: если в проекте одновременно линкуются библиотеки cw32.lib и cw32mt.lib, это может привести к конфликтам? Или на этапе линковки все линкер разруливает правильно?
|
|
|
|
| постоянный участник
|
Пост N: 137
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.06.09 18:10. Заголовок: И еще вопрос: есть у..
И еще вопрос: есть уже готовые библиотеки функций, используемые в проекте. Их нужно пересобирать в МТ?
|
|
|
|
| постоянный участник
|
Пост N: 698
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.06.09 21:33. Заголовок: PSP пишет: если в п..
PSP пишет: цитата: | если в проекте одновременно линкуются библиотеки cw32.lib и cw32mt.lib, это может привести к конфликтам? Или на этапе линковки все линкер разруливает правильно? |
| В случае с Harbour доверьтесь hbmk2. Он соберет для вас все правильно и exe и lib (или почти правильно - это я о pcode dll), для этого его и создали. В общем же случае линкер "старается" разрулить ситуацию, но для подстраховки выдает предупреждающее уведомление (по крайней мере так делают bcc, msvc, если их только не "попросили" не беспокоить с помощью ключей или pragma) чтобы программист еще раз хорошенько подумал, что делает. цитата: | есть уже готовые библиотеки функций, используемые в проекте. Их нужно пересобирать в МТ? |
| Здесь однозначного ответа нет. И дело даже не в пересборке. Нужно понимать, что просто перекомпилирование программы и связывание ее с hbvmmt не делает вашу программу многопоточной автоматически. Нужно сделать анализ кода. Возможно нужен редизайн библиотеки, а возможно и менять ничего не нужно.
|
|
|
|
| постоянный участник
|
Пост N: 138
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.06.09 18:53. Заголовок: Спасибо. В общих чер..
Спасибо. В общих чертах понятно. :)
|
|
|
|