标签: makefile

如何在Windows中安装和使用"make"?

我正在按照我克隆到我的机器的某个人的指示.我想要的很简单:能够在make设置代码环境时使用该命令.但是我正在使用Windows,我在线搜索只找到要下载的make.exe文件,要下载的make-4.1.tar.gz文件(我不知道下一步该做什么),以及有关下载MinGW(GNU;但是安装后我没有发现任何提及"制造").

我不想要GNU编译器或相关的东西; 我只想在Windows中使用"make".请告诉我应该怎样做才能实现这一目标.

提前致谢!

makefile gnu-make windows-8 windows-10

67
推荐指数
11
解决办法
14万
查看次数

Makefile:包含字符串

变量返回MINGW32_NT-5.1CYGWIN_NT-5.1.(是,最后点)

需要比较给定的var包含NT-5.1位于任何地方.

使用cygwin并希望与几乎任何*nix兼容.

string makefile conditional-statements

65
推荐指数
2
解决办法
5万
查看次数

NDK找不到应用程序目录

运行ndk-build命令时,出现以下错误:

Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
Run Code Online (Sandbox Code Playgroud)

我的Android.mk文件的内容:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := FRE
LOCAL_SRC_FILES := FlashRuntimeExtensions.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := NativeQCAR
LOCAL_SRC_FILES := main.c
LOCAL_SHARED_LIBRARIES := FRE
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

添加以下行没有帮助:

NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
Run Code Online (Sandbox Code Playgroud)

makefile android-ndk

65
推荐指数
6
解决办法
9万
查看次数

CFLAGS,CCFLAGS,CXXFLAGS - 这些变量到底控制着什么?

我正在使用GNU make来编译我的C++代码,我想了解如何使我的编译可以自定义.

我在不同的地方阅读CFLAGS,CCFLAGSCXXFLAGS用于此目的.那我该怎么用呢?如果我有额外的命令行参数编译器,我应该将它们附加CFLAGS或前置它们吗?有共同的做法吗?

为什么三个不同的变量?我想C编译器应该得到CFLAGSCCFLAGS,而C++编译器应该得到CFLAGSCXXFLAGS-我有没有得到它吗?

人类用户是否应该设置这些变量?做任何自动化工具(automake,autoconf,等)设置它们?我应该使用的linux系统没有定义任何这些变量 - 这是典型的吗?

目前我的Makefile看起来像这样,我觉得它有点脏:

ifdef code_coverage
    GCOV_FLAG := -fprofile-arcs -ftest-coverage
else
    GCOV_FLAG :=
endif

WFLAGS := -Wall

INC_FLAGS := -Istuff -Imore_stuff -Ietc

CCFLAGSINT := -O3 $(WFLAGS) $(INC_FLAGS) $(CCFLAGS)

... (somewhere in the makefile, the command-line for compilation looks like this)
    $(CC) $(CCFLAGSINT) -c $< -o $@

... (somewhere in the makefile, the command-line for linking looks …
Run Code Online (Sandbox Code Playgroud)

gcc makefile naming-conventions

64
推荐指数
3
解决办法
10万
查看次数

如何使用echo o print在NDK-build Android.mk文件中打印var来调试编译?

我正在尝试使用ndk-build编译库时打印一些额外的信息.

例如:

LOCAL_PATH := $(call my-dir)
all:;echo $(LOCAL_PATH)
echo: $(LOCAL_PATH)
print:echo "i'm not working"
Run Code Online (Sandbox Code Playgroud)

当我做ndk-build时,只需编译所有Android.mk,但我没有得到控制台回声.我已经阅读了GNU make info(ndk-build只是一个很小的GNU make),有些帖子说echo必须使用$(VAR)才能工作,但它不适用于我的情况.

有些想法?

debugging makefile android-ndk

64
推荐指数
3
解决办法
5万
查看次数

如何在makefile中使用LDFLAGS

我是Linux OS的新手.我正在尝试.c使用makefile 编译文件.必须链接数学库.我的makefile看起来像这样:

CC=gcc
CFLAGS=-Wall -lm

all:client

.PHONY: clean
clean:
    rm *~ *.o client
Run Code Online (Sandbox Code Playgroud)

当我运行时make,我收到以下错误:

"undefined reference to rint"
Run Code Online (Sandbox Code Playgroud)

所以它无法链接数学库.

但是当我使用明确编译时

gcc client.c -lm -o client
Run Code Online (Sandbox Code Playgroud)

它成功编译.

那么我应该如何更改我的makefile以使其正常工作.我已经尝试过添加LDFLAGS=-lm.但我得到了同样的错误.

我还应该补充一点,当我跑步时make,它会扩展到

gcc -Wall -lm client.c -o client
Run Code Online (Sandbox Code Playgroud)

(请注意,当我最后gcc明确地运行-lm时,它的工作原理).

makefile ldflags

64
推荐指数
3
解决办法
19万
查看次数

在OSX上使用make

我有一个macbook我正在尝试做一些开发.我有一个我想要构建的程序,当我使用make它来构建它时,我得到了一个"找不到命令"的错误.我做了一些google和SO搜索,看起来这不是一个常见的问题.为什么我没有安装,我怎么得到它?我更加困惑,因为我知道我最近使用它(在过去一个月左右),当我在这台笔记本电脑上.

macos terminal makefile

63
推荐指数
8
解决办法
11万
查看次数

典型的./configure在Linux中做什么?

为什么有必要虽然在makefile中指定了所有内容?

linux makefile build configure

63
推荐指数
3
解决办法
2万
查看次数

如何在Visual Studio中使用makefile?

我听说过很多关于makefile的内容以及它们如何简化编译过程.我正在使用VS2008.有人可以建议一些在线参考或书籍,我可以找到更多关于如何处理它们?

c++ makefile visual-studio

62
推荐指数
6
解决办法
17万
查看次数

如何让GNU明确测试失败?

经过多年没有使用make,我发现自己需要它,现在是gnu版本.我很确定我应该能够做我想做的事情,但是没有弄清楚如何,或者找到谷歌的答案等.

我正在尝试创建一个测试目标,它将多次执行我的程序,将结果保存在日志文件中.一些测试应该导致我的程序中止.不幸的是,我的makefile在第一次测试时中止,导致错误.我有类似的东西:

# Makefile
# 
test:
        myProg -h > test.log              # Display help
        myProg good_input >> test.log     # should run fine
        myProg bad_input1 >> test.log      # Error 1
        myProg bad_input2 >> test.log      # Error 2
Run Code Online (Sandbox Code Playgroud)

使用上面的命令,在bad_input1运行后退出,永远不会运行bad_input2.

makefile gnu-make

62
推荐指数
3
解决办法
2万
查看次数