Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   *Решено* | Помогите скомпилить пример на С (http://forum.oszone.net/showthread.php?t=46925)

xgg 20-03-2005 15:29 308470

*Решено* | Помогите скомпилить пример на С
 
Вложений: 1
Начал изучать язык C , решил учить не с книг , а с исходников . получается неплохо , вот только скачал исходники , изучил , а скомпилить не могу . причем под линуксом одна ошибка , под виндой другая , устал уже компилятор мучить %( .

выкладываю сам исходник , а не то что показывет компилятор т.к. как я сказал , я могу ошибаться в том что исходник неправильный, а не я напортачил .
Он демонстрирует передачу файлов между компьютерами с шифрацией md5 . ошибка по моему в самой шифрации , т.к. если убрать ее , то компилится %)
Если у кого получится закомпилить , то буду благодарен если дадите рекомендацию как "вправить" исходник .

Envel 20-03-2005 20:16 308542

Попробуй поменять свои исходники на книги. Получится еще лучше.

xgg 20-03-2005 23:35 308588

да , я решил почитать книги по С, все же это классика. И насчет этой програмки может кто помочь ? не хотелось бы так это оставлять

mrcnn 23-03-2005 21:07 309475

Если компилить для windows, то:

в обоих файлах recvfile.c и sendfile.c :

1. найти ВСЕ строчки #ifdef WIN32 и удалить

2. удалить все, что находится между #else и #endif (включая #else, #endif ).
Все что между #ifdef WIN32 и #else оставить

3. определение переменной wsadata (а именно строчку WSADATA wsadata; ) перенести в начало функции main, то есть туда, где находятся определения переменных

4. в файле sendfile.c на линии 120 есть строчка if(S_ISDIR(xstat.st_mode)) {
Здесь я точно не знаю, но возможно аналогичное выражается таким образом if(xstat.st_mode== _S_IFDIR)

Компилится так:
1. при линковании указать обязательно(!) wsock32.lib
2. сначала компилятся вместе md5.c и recvfile.c - это приемщик файлов
3. Затем компилятся вместе md5.c и sendfile.c - это отправитель файлов

Командная строка для компиляции в MS Visual C++ 6.0 может быть такой:

первый exe:

cl recvfile.c md5.c /nologo /W3 /GX /O2 /D 'WIN32' /D 'NDEBUG' /D '_CONSOLE' /D '_MBCS' /YX /FD /c

link recvfile.obj md5.obj kernel32.lib user32.lib gdi32.lib wsock32.lib /nologo /subsystem:console /machine:I386

второй exe:

cl sendfile.c md5.c /nologo /W3 /GX /O2 /D 'WIN32' /D 'NDEBUG' /D '_CONSOLE' /D '_MBCS' /YX /FD /c

link sendfile.obj md5.obj kernel32.lib user32.lib gdi32.lib wsock32.lib /nologo /subsystem:console /machine:I386


Время: 21:11.

Время: 21:11.
© OSzone.net 2001-