LINUX.ORG.RU

портирование проекта linux -> windows


0

0

Потдскажите какие строчки поменять\добавить?
вот на эту

#include <unistd.h>

вот так ругается

async.hh(25) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
crypt_handler.cpp

тут кое-что поменял

#ifdef WIN32
#include <winsock.h>
//#include <winsock2.h>
//#include <WS2tcpip.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
#include <stdio.h>
#include <errno.h>
#include <netdb.h>

но вот так ругается на последние 3 строчки...

flow_handler.hh(47) : fatal error C1083: Cannot open include file: 'netdb.h': No such file or directory
stdafx.cpp

тут несоответствие параметров

#define ts_debug(level, fmt, args...) __ts_debug_i(level, __FILE__, __LINE__, fmt, ##args)
#define ts_error(fmt, args...) ts_debug(-1, fmt, ##args)
#define ts_debug_1(fmt, args...) ts_debug(1, fmt, ##args)
#define ts_debug_2(fmt, args...) ts_debug(2, fmt, ##args)
#define ts_debug_3(fmt, args...) ts_debug(3, fmt, ##args)
#define ts_debug_4(fmt, args...) ts_debug(4, fmt, ##args)
#define ts_fatal(fmt, args...) (ts_error(fmt, ##args), exit(-1))

собсно, вот...

 error C2010: '.' : unexpected in macro formal parameter list

_________
Заранее благодарен!
anonymous

unistd.h заменяется на windows.h с последующим переписыванием кода.

anonymous
()
Ответ на: комментарий от cobold

да, про гнушный компилер слыхал, только пока не собирал им этот проектик.

А вот эти?
#include "openssl/des.h"
#include "openssl/md5.h"

Как можно пеервести вот такое?
 void go(my_timer& t) {
	ts_error("Woohoo!");
	if (messages_enabled()) {
	    ts_error("Messages are enabled... sending message");
	    message(12345, "FOO BAR!!!");
	    int fd = ::open("/etc/passwd", O_RDONLY);
	    message_fd(23456, fd);
	    ::close(fd);
	}
	timer1.arm(2000000LL);
    }

    int ioctl(string target, int optname, string value, string& out) {
	ts_error("Ioctl!");
	int fd = ::open("/etc/passwd", O_RDONLY);
	int ret = encode_pass_fd(fd, out);
	return ret;
    }

anonymous
()
Ответ на: комментарий от anonymous

неа, не прокатывает, странно, есть идеи?
E:\tesla>mingw32-make clean
mingw32-make: *** No rule to make target `clean'.  Stop.

E:\tesla>dir
 ??? ? ?????????? E ?? ????? ?????.
 ???????? ????? ????: 7865-C078

 ?????????? ????? E:\tesla

17.02.2008  10:26    <DIR>          .
17.02.2008  10:26    <DIR>          ..
16.02.2008  09:33               637 acconfig.h
16.02.2008  09:33               348 config.h.in
16.02.2008  09:33            44 998 configure
16.02.2008  09:33             1 193 configure.in
16.02.2008  09:33             1 110 DISTFILES
17.02.2008  10:26    <DIR>          doc
17.02.2008  10:26    <DIR>          handlers
17.02.2008  10:26    <DIR>          include
16.02.2008  09:33             5 598 install-sh
17.02.2008  10:26    <DIR>          ipkg
16.02.2008  09:33            18 009 LICENSE
16.02.2008  09:33             3 016 Makefile.in
16.02.2008  09:33             1 480 README
16.02.2008  09:33             1 486 README.in
16.02.2008  09:33               230 setup
17.02.2008  10:26    <DIR>          src
16.02.2008  09:33               745 tesla-rebuild.in
16.02.2008  09:33             3 578 tesla.in
16.02.2008  09:33             1 055 tesla.spec.in
16.02.2008  09:33               352 test.sh
16.02.2008  09:33                37 TODO

anonymous
()
Ответ на: комментарий от anonymous

> int fd = ::open("/etc/passwd", O_RDONLY);

А тебе не проще ли будет вместо венды поставить линукс, а необходимое барахло вендовое запускать под эмулятором? ;)

mv ★★★★★
()
Ответ на: комментарий от anonymous

> неа, не прокатывает, странно, есть идеи?
>E:\tesla>mingw32-make clean
>mingw32-make: *** No rule to make target `clean'. Stop.

Есть мысли, что тебе нужно почитать документацию по autotools (automake, autoconf)

>16.02.2008 09:33 18 009 LICENSE
>16.02.2008 09:33 3 016 Makefile.in
>16.02.2008 09:33 1 480 README

Ибо у тебя есть шаблон для генерации Makefile, но ты ничего не делал, чтобы его сгенерить. Хорошим тоном считается запустить aclocal && autoconf && automake && configure (а ещё, иногда, libtoolize и другие заклинания из манускрипта про autotools), а потом уже делать make. В ходе конфигурирования софта у тебя на твоей виндовой машине вылезет куча проблем, которые нужно будет решить.

Мне интересно, ты реально думаешь, что вот так просто, без геморроя возьмёшь, да соберёшь юниксовый софт под венду, которая нифига не юникс?

mv ★★★★★
()
Ответ на: комментарий от mv

Собсно есби бы там можно было юзать линух я бы так и сделал, а венду юзал в том же ксене, но увы и ах, так низзя=(

вот от туда выхватил хидер win32 
http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-misc.c
?rev=1.130;content-type=text%2Fx-cvsweb-markup

#ifdef WIN32
#include "win32.h"
#else
#include <unistd.h>
#include <sys/time.h>
#endif

Ща кароче уже мало ошибок осталось, дебагер грешит вот на что...

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

На такой структурке

typedef struct {
    const char *target;
    int optname;
    const void *optval;
    socklen_t optlen;
    void *retval;
    socklen_t *retlen;
} ts_ioctl_s;


в строчке socklen_t *retlen;

p.s. А autoconf под венду есть вообще?

anonymous
()
Ответ на: комментарий от anonymous

> p.s. А autoconf под венду есть вообще?

Есть. Для cygwin

mv ★★★★★
()
Ответ на: комментарий от anonymous

>в строчке socklen_t *retlen;

Ну так винда не знает про такой тип. Нужно добавить соответствующий typedef. (Где-то в манах по сетевых ф-циям был рассказ о том какому типу соответствует socklen_t, с цитатами Линуса, но сходу не нашел.)

php-coder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.