- Немогу скомпилировать, drioptr, 20:41 , 03-Янв-07 (1)
- Немогу скомпилировать, zhukovia, 20:47 , 03-Янв-07 (2)
>Проблема в том, что тебе также необходимо скомпилировать сам SDK, а не >только тестовый пример. Если в SDK есть Makefile, попробуй использовать make. >Если нет (что очень странно), попробуй скормить gcc все *.c файлы >вместе с temp.c. Макеашду есть и я сделал make all. Он что то компилировал насоздавал файлов с расширением *.o. Но компиляции temp.c так и не происходит даже в директории с SDK.
- Немогу скомпилировать, zhukovia, 21:56 , 03-Янв-07 (5)
>Упс. Невнимательно прочитал твой пост. Посмотри присутствуют ли определения функций, на которые >ругается линкер, в заголовочных файлах. Упоминания есть в файле ownet.h но почемуто к этому файлу нет ownet.c файла. Зато эти функции есть в других С-файлах SDK. кусок из ownet.h ------------------------начало----------------------------- // Error handling extern int owHasErrors(void); //На нее ругается линкер. // ioutil.c functions prototypes int key_abort(void); //На нее ругается линкер. // external One Wire functions defined in owsesu.c int owAcquireEx(char *port_zstr); //На нее ругается линкер. ------------------------конец----------------------------- пробовал эти файлы копировать в папку с temp.c не помогает. Кстати почти во всех файлах идет #include <ownet.h> он наверное за "главного".. :-)
- Немогу скомпилировать, drioptr, 21:15 , 03-Янв-07 (4)
- Немогу скомпилировать, zhukovia, 21:59 , 03-Янв-07 (6)
>Кстати, уверен что тебе нужно компилить с помощью gcc, а не sdcc? Нет не уверен. А это, что, какой то другой компилятор?
- Немогу скомпилировать, drioptr, 22:34 , 03-Янв-07 (8)
- Немогу скомпилировать, zhukovia, 22:55 , 03-Янв-07 (9)
>>>Кстати, уверен что тебе нужно компилить с помощью gcc, а не sdcc? >>Нет не уверен. А это, что, какой то другой компилятор? > >sdcc - Small Device(s) C Compiler >то что ты описал очень похоже на пример из этого sdcc Вот кусок readMe.txt Makefile к SDK может поможет понять какой компилятор. README.TXT ---------------------начало---------------------------------- 1-Wire Public Domain Kit USerial Build for Linux Version 3.00 Introduction ------------ This port was targeted for and tested on a RedHat Linux X86 machine. The provided makefile will build all of the example programs distributed in the 3.00 1-Wire Public Domain release. Must specify target link file on the command line, i.e.: make all LINKFILE=win32lnk.o make atodtst LINKFILE=linuxlnk.o make temp LINKFILE=myWeirdOSlnk.c or, call make with either of the following two targets specified, 'win32' or 'linux': make win32 make linux This will cause the make file to use the default link file for the target platform and build all applications. For documentation on the examples and the 1-Wire Public Domain kit in general please see the 'main' kit: http://www.ibutton.com/software/1wire/wirekit.html Examples -------- temp Tool Versions ------------- $ make -version GNU Make version 3.77, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -dumpversion egcs-2.91.66 $ gcc -dumpmachine i386-redhat-linux General Notes ------------- - Relevant 1-Wire Information: http://www.ibutton.com http://www.maxim-ic.com/ - 1-Wire Mailing List: http://lists.dalsemi.com/mailman/listinfo/1-wire-software-de... ---------------------конец---------------------------------- MAKEFILE ---------------------начало---------------------------------- # # Must specify target link file on the command line, i.e.: # # make all LINKFILE=win32lnk.o # make atodtst LINKFILE=linuxlnk.o # make temp LINKFILE=myWeirdOSlnk.c # # or, call make with either of the following two targets # specified, 'win32' or 'linux': # # make win32 # make linux # # This will cause the make file to use the default link # file for the target platform and build all applications. # CC = gcc # Cygwin flags #CFLAGS = -mno-cygwin -DDEBUG -c #LFLAGS = -mno-cygwin -DDEBUG -g -o $@ ---------------------конец---------------------------------- - Немогу скомпилировать, zhukovia, 23:50 , 03-Янв-07 (10)
>>>Кстати, уверен что тебе нужно компилить с помощью gcc, а не sdcc? >>Нет не уверен. А это, что, какой то другой компилятор? > >sdcc - Small Device(s) C Compiler >то что ты описал очень похоже на пример из этого sdcc Вроде разобрался. Подсматрел в makefile который идет с SDK. Там делается следующим образом GCC -DDEBUG -g -o temp temp.c temp10.o findtype.o и еще дохрена всяких *.o А до этого делаются: GCC -DDEBUG -с temp10.c и т.д. т.е. создаются эти самые *.o И что неужели так всегда и надо компилировать??? Охринеть...
- Немогу скомпилировать, drioptr, 02:03 , 04-Янв-07 (11)
- Немогу скомпилировать, zhukovia, 20:22 , 04-Янв-07 (12)
C этим я разобрался боле-менее. Но возникла другая загвоздка. Если я пробую компилировать в Linux SuSe 10 то все нормально, а если же пытаюсь сделать тоже самое во FreeBSD 6.1 то ничего не получается. GCC стоит свежий и там и там. Я догадываюсь что проблемма в том что в Linuxe есть какие то пакеты которых нет во FreeBSD. Можно как то узнать чего не хватает, из пакетов, FreeBSD? часть выдаваемых ошибок ------------------начало-------------------- syntax error before "ulong" syntax error before "ushort" ------------------конец-------------------- строки на которую ругается компилер ------------------начало-------------------- int EnterHex(char *msg, int numchars, ulong *value); void setcrc16(int portnum, ushort reset); ------------------конец-------------------- как я понял в вызываемой функции есть параметры не извесных системе типов. Но почему тогда в Linuxe все нормально. Кстати бинарники скомпилированые в Linuxe идут и во FreeBSD, правда только после того как я скачал и установил пакэдж скомпилированной библиотеки для этих устройств (для FreeBSD). Так и должно быть?
- Немогу скомпилировать, drioptr, 23:29 , 04-Янв-07 (13)
- Немогу скомпилировать, zhukovia, 18:10 , 06-Янв-07 (14)
>>syntax error before "ulong" >>syntax error before "ushort" > >ulong и ushort это нестандартные для C типы. Они определены в заголовочных >файлах Linux'a, а в FreeBSD нет. Решить это можно добалением в >самый главный заголовочный файл этого SDK подобных строчек: > >#ifdef __FreeBSD__ > typedef unsigned short > ushort; > typedef unsigned long > ulong; >#endif > > Большое спасибо за подсказку.... :-) Теперь дело пойдет быстрее... :-)>>...Кстати бинарники скомпилированые в >>Linuxe идут и во FreeBSD, правда только после того как я >>скачал и установил пакэдж скомпилированной библиотеки для этих устройств (для FreeBSD). >>Так и должно быть? > >Да. FreeBSD может выполнять программы скомпилированные для Linux. Но не наоборот. Даже без linux-base пакета? - Немогу скомпилировать, zhukovia, 18:13 , 06-Янв-07 (15)
Еще один вопрос. Как указать компилятору путь к каталогу с SDK? А то как то неудобно работать в каталоге с SDK.
- Немогу скомпилировать, zhukovia, 22:04 , 03-Янв-07 (7)
Вот кусок readMe.txt Makefile к SDK может поможет. README.TXT ---------------------начало---------------------------------- 1-Wire Public Domain Kit USerial Build for Linux Version 3.00 Introduction ------------ This port was targeted for and tested on a RedHat Linux X86 machine. The provided makefile will build all of the example programs distributed in the 3.00 1-Wire Public Domain release. Must specify target link file on the command line, i.e.: make all LINKFILE=win32lnk.o make atodtst LINKFILE=linuxlnk.o make temp LINKFILE=myWeirdOSlnk.c or, call make with either of the following two targets specified, 'win32' or 'linux': make win32 make linux This will cause the make file to use the default link file for the target platform and build all applications. For documentation on the examples and the 1-Wire Public Domain kit in general please see the 'main' kit: http://www.ibutton.com/software/1wire/wirekit.html Examples -------- temp Tool Versions ------------- $ make -version GNU Make version 3.77, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -dumpversion egcs-2.91.66 $ gcc -dumpmachine i386-redhat-linux General Notes ------------- - Relevant 1-Wire Information: http://www.ibutton.com http://www.maxim-ic.com/ - 1-Wire Mailing List: http://lists.dalsemi.com/mailman/listinfo/1-wire-software-de... ---------------------конец---------------------------------- MAKEFILE ---------------------начало---------------------------------- # # Must specify target link file on the command line, i.e.: # # make all LINKFILE=win32lnk.o # make atodtst LINKFILE=linuxlnk.o # make temp LINKFILE=myWeirdOSlnk.c # # or, call make with either of the following two targets # specified, 'win32' or 'linux': # # make win32 # make linux # # This will cause the make file to use the default link # file for the target platform and build all applications. # CC = gcc # Cygwin flags #CFLAGS = -mno-cygwin -DDEBUG -c #LFLAGS = -mno-cygwin -DDEBUG -g -o $@ ---------------------конец----------------------------------
|