Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ключи компиляции TinyCC, Помогите с использованием -L, -I, -l  
:(
    Опции темы
Lelouch
Дата 8.6.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



Пытаюсь приспособить tcc для небольших проектов. Для этого создал папку, в которой лежат:
  •  main.c - файл с программой,
  •  inc - папка, в которой лежат заголовочные файлы,
  •  lib - папка, в которой лежат библиотеки (*.lib),
  •  tcc - папка с самим компилятором,
  •  makeit.bat - файл, который должен собирать проект.
В makeit.bat  написал следующее:
Код

if exist "main.exe" del "main.exe"
tcc\tcc.exe -o main.exe -I\inc -L\lib -lws2_32 main.c
pause
exit

Компилятор выдает ошибку "cannot find -lws2_32" и не видит заголочные файлы в папке inc.
В чем может быть проблема?
Может у кого-нибудь есть рабочий пример .bat-файла, который делает то же  самое?) 
PM MAIL   Вверх
boostcoder
Дата 8.6.2011, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



так:
Цитата

tcc/tcc.exe -o main.exe -I./inc -L./lib -lws2_32 main.c


тоже тыкал tcc одно время. довольно забавный компилятор. код генерит не высшего качества. зато очень маленькие исполняемые файлы получаются. и компилит очень быстро.
PM WWW   Вверх
Lelouch
Дата 8.6.2011, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



Частично проблема решилась,
Код

tcc\tcc.exe -o main.exe -I.\inc -L.\lib -lws2_32 main.c
 
Теперь файлы в папках он видит, но все равно пишет  "cannot find -lws2_32". У меня была похожая проблема с MinGW, но там это сообщение появлялось если линкеру указать имя библиотеки с расширением, например  ws2_32.lib приводило к такой же ошибке. В чем тут проблема - не знаю). Еще посмотрел как с TinyCC работает CodeBlocks, выяснилось, что хотя формально он его поддерживает, правильные ключи компиляции не подставляет и ничего не компилирует)


Это сообщение отредактировал(а) Lelouch - 8.6.2011, 21:57
PM MAIL   Вверх
boostcoder
Дата 8.6.2011, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



а библиотека имеется в ./lib ?
и косые у Вас какие-то странные оО
PM WWW   Вверх
Lelouch
Дата 9.6.2011, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



Библиотека имеется, а косые обратные потому что винда)
PM MAIL   Вверх
500mhz
Дата 9.6.2011, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



а чем lcc win32 не подходит или Pelles C ?
маленькие и шустрые компиляторы, ехешники делают "правильные" хело ворд 1560 байт )


--------------------

PM MAIL ICQ   Вверх
boostcoder
Дата 9.6.2011, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



Цитата(Lelouch @  9.6.2011,  07:20 Найти цитируемый пост)
Библиотека имеется

откуда? оО
в комплекте поставки ее нет ;)
ссылку пожалуйста.
PM WWW   Вверх
Lelouch
Дата 9.6.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



Цитата

а чем lcc win32 не подходит или Pelles C ?
маленькие и шустрые компиляторы, ехешники делают "правильные" хело ворд 1560 байт )

Код 
Код

#include <stdio.h>
int main(void)
{
    printf("%s", "Hello world");
    return 0;
}

tcc компилирует в exeшник размером 1536 байт, так что тут особой разницы нет)
Цитата

откуда? оО
в комплекте поставки ее нет ;)
ссылку пожалуйста.

В прикрепленном архиве папка с проектом, библиотека там есть)
Видимо ошибка в чем-то другом.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Project.zip 303,98 Kb
PM MAIL   Вверх
boostcoder
Дата 9.6.2011, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



если библиотеке изменить расширение на .a, то получаю такое сообщение:
Цитата

C:\Project>tcc\tcc.exe main.c -Iinc -Llib -lws2_32
lib/libws2_32.a: invalid object file
tcc: cannot find -lws2_32

т.е. файл-то компилятор видит.

Добавлено через 25 секунд
а библиотеку вы как создали?
PM WWW   Вверх
Lelouch
Дата 9.6.2011, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



Библиотеку не сам создавал, качал в интернете архив с библиотекой, заголовочником и dll. С masm32 такая же идет. Получается tcc формат lib не поддерживает? С ним в папке идет tiny_libmaker, видимо надо создавать как-то с его помощью, но при попытке скормить ему библиотеку он вылетает.
PM MAIL   Вверх
boostcoder
Дата 9.6.2011, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



Цитата(Lelouch @  9.6.2011,  20:32 Найти цитируемый пост)
Получается tcc формат lib не поддерживает?

с ним идет одна библиотека. но с расширением .а

Цитата(Lelouch @  9.6.2011,  20:32 Найти цитируемый пост)
С ним в папке идет tiny_libmaker, видимо надо создавать как-то с его помощью

по идее да.

Цитата(Lelouch @  9.6.2011,  20:32 Найти цитируемый пост)
но при попытке скормить ему библиотеку он вылетает

такая же ерунда.

попробуйте lcc ;)
PM WWW   Вверх
Lelouch
Дата 9.6.2011, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2011

Репутация: нет
Всего: нет



lcc я попробую, но хочется сначала разобраться в чем здесь проблема)
Почитал их рассылку, оказывается по умолчанию tcc пытается линковать все файлы динамически, чтобы он линковал статически нужно добавить ключ -static.
Код

tcc\tcc.exe -o main.exe -I.\inc -L.\lib -static -lws2_32 main.c

Теперь он ругается на undefined symbol'ы. Похоже ему нужны библиотеки с расширением .a.
PM MAIL   Вверх
500mhz
Дата 9.6.2011, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



lcc и pelles - одно и тоже, разница в том что у lcc асемблерные вставки должны быть с AT синтаксисом а у pelles интел синтаксис


--------------------

PM MAIL ICQ   Вверх
boostcoder
Дата 9.6.2011, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 2
Всего: 110



500mhz, у pelles C даже IDE есть! smile

Добавлено @ 23:04
да и новость последняя - 2011-04-17. развивается smile

Это сообщение отредактировал(а) boostcoder - 9.6.2011, 23:25
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.