【问题标题】:Undefined reference under WinMain@16 in cygwincygwin中WinMain@16下的未定义引用
【发布时间】:2018-05-10 03:54:10
【问题描述】:

我是 stackflow 的新手,之前我没有计算机系统和编程方面的背景。但是,现在我需要在 cygwin 下为我的生物信息学项目运行分析。当我尝试使用 cygwin 编译文件名“zone_b.linux”以生成可执行程序时遇到一些错误。 linux 文件是从网络https://github.com/haddocking/HADDOCK-binding-sites-tutorial/blob/master/ana_scripts/zone_b.linux 下载的。当我尝试在 cygwin 下使用以下命令进行编译时,会产生以下错误:

$ gcc zone_b.linux
/usr/lib/gcc/i686-pc-cygwin/6.4.0/../../../libcygwin.a(libcmain.o): In 
function `main':
/usr/src/debug/cygwin-2.9.0-3/winsup/cygwin/lib/libcmain.c:37: undefined 
reference to `WinMain@16'
collect2: error: ld returned 1 exit status

Error description

我在stackoverflow下搜索了以下错误,发现有两个类似问题的帖子。

首先是来自undefined reference to `WinMain@16' 的帖子。它表示问题是由于微软的链接器使用了一个运行时库入口点(winMainCRTStartup),它调用了微软的非标准 WinMain 而不是标准的 main。所以,我尝试了帖子的建议,即通过以下命令包含条目

$ gcc zone_b.linux /entry:winMainCRTStartup
gcc: error: /entry:winMainCRTStartup: No such file or directory

但是我得到错误没有这样的文件或目录。我想可能是因为我在 cygwin 而不是 mingW 下运行。

第二个帖子是Undefined reference to WinMain in Cygwin。从帖子中,它说使用 -c 编译标志只生成目标文件。但是,就我而言,我没有使用任何-c。因此,我认为这与我的问题无关。

如果有人能向我解释一下,我将不胜感激,因为我是这个计算领域的新手。谢谢。

【问题讨论】:

  • zone_b.linux 是用哪种语言编写的? file zone_b.linux 会提供提示

标签: linux gcc compilation cygwin winmain


【解决方案1】:

zone_b.linux 是编译和链接的可执行程序,可以在 linux 机器上运行。它是一个 32 位 ELF 二进制文件。即使使用 cygwin 或 mingw32,它也无法在 Windows 机器上运行,无需重新计算。

您可能必须编译zone_b.f,一个FORTRAN 源文件,使用gfortran 编译器创建一个在cygwin 中可用的zone_b.exe。我没有看到这方面的说明,但尝试使用gcc zone_b.f 之类的方法并交叉手指。确保使用 cygwin 安装程序安装 gfortran。

您还需要通过在ana_scripts 目录中执行make 来(重新)构建其他可执行文件(cluster_struccontact)。任何提供的可执行文件(来自git clone ... 或下载的.zip 文件)都不能在cygwin 下运行。

您需要安装 perlpython。我认为perl 是默认安装的。您可以使用 cygwin 安装程序安装 python2。 python 脚本看起来可以与 python2 或 python3 一起使用,以默认值为准。今天在cygwin上,python2是默认的python。我不做perl,所以请交叉手指。

【讨论】:

  • 感谢 Doug Henderson 的回复。我已经尝试在 ubuntu 上运行 zone_b.linux。在这里,我运行命令 source.csh 并生成 zone_b.exe。但是,即使是可执行的 zone_b 也会产生错误(未找到 zone_b 命令)。即使在我执行了 chmod a+x zone_b 之后。脚本只是没有响应。我也尝试编译 zone_b.f,但它也会产生错误。我在这个帖子下发布了错误:stackoverflow.com/questions/47503002/…
猜你喜欢
  • 2021-11-18
  • 2013-01-15
相关资源
最近更新 更多