c - Mac OS Maverick for C 的基本 Cmake 和 make

标签 c macos makefile cmake

我是使用 Cmake 编译我自己的 C 代码的完全初学者,我正在运行 Mac OS X Mavericks。

我的问题如下。为了介绍 Cmake,创建了一个包含以下文件夹的文件夹

bin/
build/
src/
   fonctions.h
   fonctions.c
   main.c

这是我的 CMakeLists.txt 文件:

project(Addition)
add_executable(
    bin/addition
    src/main.c
    src/fonctions.h
    src/fonctions.c
)

当我运行时:

$ cmake . -G "Unix Makefiles"

然后从我的根文件夹创建,没问题。

但是当我运行时:

$ cmake .. -G "Unix Makefiles"

然后从我的/build 文件夹中制作我收到此错误消息:

Linking C executable bin/addition
ld: can't open output file for writing: bin/addition, errno=2 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/addition] Error 1
make[1]: *** [CMakeFiles/bin/addition.dir/all] Error 2
make: *** [all] Error 2

谁知道为什么?

最佳答案

从您的 add_executable 中删除 bin/并使用 CMAKE_RUNTIME_OUTPUT_DIRECTORY更改构建位置

add_executable(
    addition
    src/main.c
    src/fonctions.h
    src/fonctions.c
)

关于c - Mac OS Maverick for C 的基本 Cmake 和 make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22324988/

相关文章:

makefile - 常见的 Makefile 习惯用法 "> $@"(将输出重定向到目标)是错误的吗?

c - 从我的 makefile 运行时 GCC 忽略库

c - 用于删除 C 代码中所有循环的工具

ios - 从给定索引处的数组中删除图像

cocoa - 创建按钮的 quartz 代码?

android - 无法将 Android Studio 的调试器附加到 Android 进程

c - Makefile, "nothing to be done for all"错误

c - 为什么我会收到此错误(指向错误的指针)

C 增量运算符

将所有数组元素复制到另一个数组中