如何在Windows上安装primer3?

问题描述 投票:0回答:1

问题:

我需要安装Primer3,这是一种被广泛使用的生物工具,可以使人们设计引物。

尝试解决:

我试图遵循他们的instructions for a Windows installation毫无用处,因为它似乎没有提供足够的信息。我绝对不是一个经验丰富的程序员。到目前为止,我还参考了this stack overflow post的类似问题,并尝试遵循建议的答案。我也简要地看了一下thread in their github repository,尽管我真的无法理解他们在说什么。就我从命令终端(mingw32版本)获得的输出而言,似乎没有任何作用:

C:\Users\mqian\Desktop\CGIProject\primer3-2.4.0\primer3-2.4.0\test>mingw32-make
TESTOPTS=--windows
cd ..\src & mingw32-make
mingw32-make[1]: Entering directory 'C:/Users/mqian/Desktop/CGIProject/primer3-2
.4.0/primer3-2.4.0/src'
g++ -c -g -Wall -D__USE_FIXED_PROTOTYPES__ -O2  masker.c
masker.c:8:22: fatal error: sys/mman.h: No such file or directory
compilation terminated.
Makefile:226: recipe for target 'masker.o' failed
mingw32-make[1]: *** [masker.o] Error 1
mingw32-make[1]: Leaving directory 'C:/Users/mqian/Desktop/CGIProject/primer3-2.
4.0/primer3-2.4.0/src'
Makefile:94: recipe for target 'makeexes' failed
mingw32-make: *** [makeexes] Error 2

如果我只是尝试在src文件夹中运行make:

C:\Users\mqian\Desktop\CGIProject\primer3-2.4.0\primer3-2.4.0\src>mingw32-make
g++ -c -g -Wall -D__USE_FIXED_PROTOTYPES__ -O2  masker.c
masker.c:8:22: fatal error: sys/mman.h: No such file or directory
compilation terminated.
Makefile:226: recipe for target 'masker.o' failed
mingw32-make: *** [masker.o] Error 1

是否缺少所需的软件或软件包?他们的makefile文件被窃听了吗?任何帮助,将不胜感激。

P.S。这是他们在sourceforge上的下载站点的link。我正在使用2.4.0版。

windows command-line makefile mingw32 primer3
1个回答
0
投票

我能够在Windows上像这样构建它(用要安装的路径替换/usr/local:]

使用以下命令从MSYS2下的https://github.com/witwall/mman-win32/releases构建mman-win32:

./configure --prefix=/usr/local --cc=gcc --enable-static --enable-shared &&
make &&
mkdir -p /usr/local/include/mman-win32/sys /usr/local/lib &&
cp -f *.h /usr/local/include/mman-win32/sys/ &&
cp -f *.a /usr/local/lib/ &&
echo Success

然后从https://github.com/primer3-org/primer3/releases构建入门3:

mv src/masker.c src/masker.c.bak
cat > src/masker.c << EOF
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define GETLINE_BUFLEN 128
static ssize_t getline(char** lineptr, size_t* n, FILE* stream)
{
  char* bufptr;
  char* p;
  ssize_t size;
  int c;
  if (!lineptr || !n || !stream)
    return -1;
  bufptr = *lineptr;
  size = *n;
  c = fgetc(stream);
  if (c == EOF)
    return -1;
  if (!bufptr) {
    if ((bufptr = (char*)malloc(GETLINE_BUFLEN)) == NULL)
      return -1;
    size = GETLINE_BUFLEN;
  }
  p = bufptr;
  while (c != EOF) {
    if ((p - bufptr) > (size - 1)) {
      size = size + GETLINE_BUFLEN;
      if ((bufptr = (char*)realloc(bufptr, size)) == NULL)
        return -1;
    }
    *p++ = c;
    if (c == '\n') {
      break;
    }
    c = fgetc(stream);
  }
  *p++ = 0;
  *lineptr = bufptr;
  *n = size;
  return p - bufptr - 1;
}
EOF
cat src/masker.c.bak >> src/masker.c
make -Csrc install PREFIX=/usr/local CC_OPTS="-I/usr/local/include/mman-win32" LDLIBS="-Wl,--as-needed -lmman" &&
echo Success
© www.soinside.com 2019 - 2024. All rights reserved.