首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Windows64编译C代码

为Windows64编译C代码
EN

Stack Overflow用户
提问于 2011-05-12 21:30:31
回答 5查看 10.5K关注 0票数 6

我已经很多年没有接触过C语言了,但是我需要为Windows7 64编译一些C源代码。源代码附带了一个makefile。有没有人能推荐一个带有make的C编译器?

PS:

make文件:

代码语言:javascript
复制
POSTFIX="_amd64"
CC = CC="cc -Wall"
RANLIB=RANLIB="ranlib"
INSTALLDIR=/usr/local/bin
LIBINSTALLDIR=/usr/local/lib

VERSION=4.12
DATE=10/10/10

PROGRAMS=bib2xml ris2xml end2xml endx2xml med2xml isi2xml copac2xml \
    biblatex2xml ebi2xml wordbib2xml \
    xml2ads xml2bib xml2end xml2isi xml2ris xml2wordbib modsclean

all : FORCE
    cd lib; make -k $(CC) -k $(RANLIB); cd ..
    cd bin; make -k $(CC) -k VERSION="$(VERSION)" -k DATE="$(DATE)"; cd ..

clean: FORCE
    cd lib     ; make clean ; cd ..
    cd bin     ; make clean ; cd ..
    cd test    ; make clean ; cd ..

realclean: FORCE
    cd lib     ; make realclean ; cd ..
    cd bin     ; make realclean ; cd ..
    cd test    ; make realclean ; cd ..
    rm -rf update lib/bibutils.pc

test: all FORCE
    cd lib    ; make test; cd ..
    cd bin    ; make test; cd ..

install: all FORCE
    cd lib ; make -k LIBINSTALLDIR=$(LIBINSTALLDIR) install; cd ..
    sed 's/VERSION/${VERSION}/g' packageconfig_start > lib/bibutils.pc
    @for p in ${PROGRAMS}; \
        do ( cp bin/$$p ${INSTALLDIR}/$$p ); \
    done

package: all FORCE
    csh -f maketgz.csh ${VERSION} ${POSTFIX}

deb: all FORCE
    csh -f makedeb.csh ${VERSION} ${POSTFIX}

FORCE:
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-12 22:30:19

由于这里的每个人都没有注意到您清晰的64位语句,所以我将给出一个正确的答案:

  1. 如果生成文件是Nmake生成文件,则可以安装Visual Studio Express for Windows Desktop,从[开始]菜单打开命令提示符(选择面向64位Windows的命令提示符),cd到项目的目录,然后运行nmake。您需要修改makefile以调用cl和link。
  2. 如果Makefile是MinGW makefile,则需要mingw-w64's toolchains targetting Win64 (注意,还提供了32位工具链)。我推荐official builds provided through an installer或可从MSYS2安装的版本(请参阅第3点)。安装,打开MinGW-w64命令提示符,进入你的项目目录,然后运行mingw32-make.
  3. If。makefile是一个Unix/MSYS生成文件,我建议使用MSYS2。您可以使用上面的工具链,或者从MSYS2外壳程序执行pacman -S mingw-w64-x86_64-gcc来安装工具链。请确保将/mingw64/bin添加到PATH或从"MSYS2 MinGW-w64 64位“快捷方式启动以使用它。注意:您只能将MSYS2用作包管理工具:安装您想要的任何依赖项(有大量的第三方库二进制文件可供使用),只需将<MSYS2 root>/mingw64/bin目录添加到PATH并从任何地方调用编译器即可。
  4. 如果项目使用Unix功能(如fork()或其他Unix系统调用),您可以使用64位Cygwin,安装其编译器,并链接到Cygwin dll。不建议这样做,因为这样会有性能(相对于将代码移植到GPL API)和许可损失( Cygwin DLL是Win32,这会强制您的程序以与GPL兼容的方式进行许可)。

以下是使用免费工具为64位Windows编译C源文件的四种方法。如果你是一名学生,你可能也可以使用以下方法:

  1. Dreamspark下载Visual Studio Professional (如果你的大学/学院/学校与微软有协议)并使用它。除了你使用像MFC/ATL和/或VS插件这样的东西,它们不能从他们的Education offerings website在英特尔编译器的express version.
  2. Download中工作之外,它几乎等同于第一点。不过,需要从第5点开始使用Visual Studio Professional。您需要修改Makefile以使用here的英特尔编译器though.
  3. Download LLVM/Clang编译器( Windows快照构建),并将其与第5点结合使用。您将需要修改makefile以调用clang。

我知道这比你要求的要多,但我的高评分答案需要完整,对吧?

票数 13
EN

Stack Overflow用户

发布于 2011-05-12 21:35:35

您可以使用Visual C并查看nmake

请参阅:How to use makefiles in Visual Studio?

票数 1
EN

Stack Overflow用户

发布于 2011-05-12 21:37:42

您可以尝试使用MinGW来创建类似于GCC的makefile。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5978722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档