Compiling with VS2015

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Pete Mack
    replied
    MSVC doesn't have stdbool.h
    You can write your own, then add -I. to the compile line.

    Leave a comment:


  • Siemelink
    replied
    Originally posted by Pete Mack
    MSVC does work for C, it just never was updated fully to later standards. I don't know why. Adding that kind of thing to a compiler is pretty easy.
    Yes, I've been using MSVC for over a decade to compile angband.

    It does not seem to like nested typedefs, #typedef char bool gives errors where bool is used. If I replace bool with char, it does compile. But clearly doing that throughout the code is not optimal.

    Willem.

    Leave a comment:


  • Pete Mack
    replied
    MSVC does work for C, it just never was updated fully to later standards. I don't know why. Adding that kind of thing to a compiler is pretty easy.

    Leave a comment:


  • t4nk
    replied
    Maybe just don't use a C++ compiler to compile a program that is not written in C++

    Leave a comment:


  • Pete Mack
    replied
    MSVC is known not to be fully compliant in c99. You can change the const int to a #define with no bad effects.

    Leave a comment:


  • Siemelink
    started a topic Compiling with VS2015

    Compiling with VS2015

    Hi all,
    I am trying to compile 4.0.5 with microsoft visual studio community 2015. I am getting loads of errors.
    There is the old instruction to compile, it is not quite accurate. My exact project settings are in the attachment.

    1)
    I've added all the .h and .c files, the files in the win folder. When I compile i receive eror: macro definition of snprintf conflicts with Standard Library function declaration

    This code seems outdated, so I've commented it out snprintf:
    /**
    * Native MSVC compiler doesn't understand inline or snprintf
    */
    #ifdef _MSC_VER
    # define inline __inline
    //# define snprintf _snprintf
    #endif

    2)
    Next, I get that pwd.h is not added. But I find the #include <pwd.h>under UNIX, while I am trying to compile as WINDOWS

    So I've added || defined(_MSC_VER) to gain:
    /**
    * Extract the "WINDOWS" flag from the compiler
    */
    # if defined(_Windows) || defined(__WINDOWS__) || \
    defined(__WIN32__) || defined(WIN32) || \
    defined(__WINNT__) || defined(__NT__) || defined(_MSC_VER)
    # ifndef WINDOWS
    # define WINDOWS
    # endif
    # endif

    3)
    now I am left with 100s of errors. I like this one:

    static const int list_size = 64;
    const char *initial_pronoun;
    const char *name_list[list_size];

    "Expression (list_size) must have constant value," which has been defined just two lines above!

    There is probably something obvious that I missed. Does someone have a clue?

    Thanks, Willem.
    Attached Files
Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎