Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > портирование проекта linux -> windows


Автор: PRGamer 17.2.2008, 09:36
Потдскажите какие строчки поменять\добавить?
вот на эту 
Код

#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>

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

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

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

Автор: popovb 17.2.2008, 16:36
Цитата

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

Цитата

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

Ясно написано. Нет хедера.

Цитата

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

Это на какую строку?

Автор: Alek86 18.2.2008, 11:33
Код

#define ts_debug_1(fmt, args...) ts_debug(1, fmt, ##args)

а мне казалось надо перед ... запятую ставить

Автор: xvr 18.2.2008, 12:59
Цитата(Alek86 @ 18.2.2008,  11:33)
Код

#define ts_debug_1(fmt, args...) ts_debug(1, fmt, ##args)

а мне казалось надо перед ... запятую ставить

Не надо: это GNU'шное расширение - макрос с переменным числом параметров. VC не поддерживает  smile 

Автор: PRGamer 18.2.2008, 13:16
Еще вот что странно, если тут 
Configuration properties->C/C++->Precompiled headers->Create/Use Precompliled Headers 
поставить...
Use Precompiled Headers
то получаю на каждый файоик такое...
fatal error C1083: Cannot open precompiled header file: 'Debug\tesla.pch': No such file or directory
А если 
Create Precompiled Headers
то куча ошибок

На что можно заменить?
#include  <sys/uio.h>
#include <sys/ioctl.h>
#include <dlfcn.h>

К стати, а где взять automake под винду? Один откопал, но там не ехе-шник, а скриптец на баше, не ясно как его в пауэршеле интерпритировать, хм....

А вот такие ошибки из-за чего могут возникнуть?
Код

e:\program files\microsoft visual studio 8\vc\include\ostream(527) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : warning C4003: not enough actual parameters for macro 'read'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(842) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(886) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>
        ]
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(887) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
        with
        [
            _Elem=wchar_t,
            _Traits=std::char_traits<wchar_t>
        ]
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\fstream(120) : warning C4003: not enough actual parameters for macro 'close'
e:\program files\microsoft visual studio 8\vc\include\fstream(205) : warning C4003: not enough actual parameters for macro 'close'

Автор: xvr 18.2.2008, 20:06
Цитата(PRGamer @ 18.2.2008,  13:16)
Еще вот что странно, если тут 
Configuration properties->C/C++->Precompiled headers->Create/Use Precompliled Headers 
поставить...
Use Precompiled Headers
то получаю на каждый файоик такое...
fatal error C1083: Cannot open precompiled header file: 'Debug\tesla.pch': No such file or directory
А если 
Create Precompiled Headers
то куча ошибок


Create Precompiled Headers должно стоять ровно для ОДНОГО cpp файла, а Use ... для всех остальных. Альтернатива - Not Use ... для всех.

Цитата

На что можно заменить?
#include  <sys/uio.h>
#include <sys/ioctl.h>
#include <dlfcn.h>

Прямых аналогов может не быть - надо смотреть, что из них используется

Цитата

К стати, а где взять automake под винду? Один откопал, но там не ехе-шник, а скриптец на баше, не ясно как его в пауэршеле интерпритировать, хм....
Поставить cygwin например

Цитата

А вот такие ошибки из-за чего могут возникнуть?
Код

e:\program files\microsoft visual studio 8\vc\include\ostream(527) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : warning C4003: not enough actual parameters for macro 'read'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(842) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(886) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>
        ]
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\istream(699) : error C2059: syntax error : ')'
        e:\program files\microsoft visual studio 8\vc\include\istream(887) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
        with
        [
            _Elem=wchar_t,
            _Traits=std::char_traits<wchar_t>
        ]
e:\program files\microsoft visual studio 8\vc\include\istream(700) : error C2143: syntax error : missing ')' before '{'
e:\program files\microsoft visual studio 8\vc\include\fstream(120) : warning C4003: not enough actual parameters for macro 'close'
e:\program files\microsoft visual studio 8\vc\include\fstream(205) : warning C4003: not enough actual parameters for macro 'close'
Похоже, что кто то закрыл макросами read и close, что явно не привествуется  smile 

Автор: PRGamer 19.2.2008, 08:37
Цитата(xvr @ 18.2.2008,  12:59)
Цитата(Alek86 @ 18.2.2008,  11:33)
Код

#define ts_debug_1(fmt, args...) ts_debug(1, fmt, ##args)

а мне казалось надо перед ... запятую ставить

Не надо: это GNU'шное расширение - макрос с переменным числом параметров. VC не поддерживает  smile

но тем не менее так сработало, спасибо)
Подскажите по структерке
Код

typedef struct {
    int optname;
    const char* target; // поменял с const char *target;
    const void * optval;
    socklen_t * optlen; //  error C2143: syntax error : missing ';' before '*' // error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    void * retval;
    socklen_t * retlen;
} ts_ioctl_s;

и по ф-ции
добавил так
#include <cstring> 
тут ниче не поменялось
Код

    void write_type(const char *type) {
    unsigned int typelen = strlen(type); //  warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data
    write((const char*)&typelen, sizeof typelen);
    write(type, typelen);
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)