无法从Ubuntu VM交叉编译C程序以在Windows主机上兼容

无法从Ubuntu VM交叉编译C程序以在Windows主机上兼容,c,windows-7,cross-compiling,ubuntu-16.04,vmware-workstation,C,Windows 7,Cross Compiling,Ubuntu 16.04,Vmware Workstation,我在编译C程序并在Windows 7 64位计算机上运行时遇到问题 这是我的剧本: #include <stdbool.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { bool isCaseSensitive = false; enum { CHARACTER_MODE, WORD_MODE, LINE_MODE } mode = C

我在编译C程序并在Windows 7 64位计算机上运行时遇到问题

这是我的剧本:

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
     bool isCaseSensitive = false;
     enum { CHARACTER_MODE, WORD_MODE, LINE_MODE } mode = CHARACTER_MODE;
     size_t optind;
     for (optind = 1; optind < argc && argv[optind][0] == '-'; optind++)
     {
         switch(argv[optind][1])
         {
             case 'h': isCaseSensitive = true; printf("Help page"); break;

         default:
             fprintf(stderr, "Usage: %s [-h]\n", argv[0]);
             exit(1);
        }
    }
}
如果我让他运行64位,他会得到以下错误:

我试图做的是:

e@ubuntu:/mnt/hgfs/devshare/utilis$ sudo apt-get install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 95 not upgraded.

e@ubuntu:/mnt/hgfs/devshare/utilis$ sudo apt-get install gcc-multilib
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc-multilib is already the newest version (4:5.3.1-1ubuntu1).
gcc-multilib set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 95 not upgraded.

e@ubuntu:/mnt/hgfs/devshare/utilis$ export LDFLAGS='-m32 -L/usr/lib32'

e@ubuntu:/mnt/hgfs/devshare/utilis$ export LDFLAGS='-m64 -L/usr/lib64'

e@ubuntu:/mnt/hgfs/devshare/utilis$ sudo apt-get install g++-multilib
Reading package lists... Done
Building dependency tree       
Reading state information... Done
g++-multilib is already the newest version (4:5.3.1-1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 95 not upgraded.

如何使我的程序正确编译并与我的Windows 7计算机交叉兼容?

弄明白了,你需要为linux安装
mingw
工具链

sudo apt-get install x86_64-w64-mingw32-g++
e@ubuntu:/mnt/hgfs/devshare/utilis$ mg++ utilis.c -o utilis.exe --static
C:\Users\z-perkins-thomas\Documents\bin\testenv\devshare\utilis>utilis.exe -h
Help page

逐步交叉编译
C
程序以在Windows上运行它们

这就是我提到的Cygwin或Mingw或其他交叉编译工具链将完成的工作。最后,很好。
sudo apt-get install x86_64-w64-mingw32-g++
e@ubuntu:/mnt/hgfs/devshare/utilis$ mg++ utilis.c -o utilis.exe --static
C:\Users\z-perkins-thomas\Documents\bin\testenv\devshare\utilis>utilis.exe -h
Help page