xcode - 如何在 Mac 上通过命令行编译 C++ 程序

标签 xcode gcc g++ clang

我以前用过Xcode构建和运行 C++程序。

我在 Xcode 中使用命令行编译相同的源代码项目。

个人编译.cpp文件没问题。

编译更复杂的项目(多个文件)是不行的。

我试过gcc , g++ , clang , clang++ .

主要问题是 undefined symbol 。

你能展示如何通过命令行编译复杂的项目(多个文件)吗?

最佳答案

从您的描述来看,您似乎没有使用 -c (编译,但不链接)标志。构建项目的步骤:

  • 编译所有源文件:
    c++ -c file1.cpp
    c++ -c file2.cpp
    c++ -c file3.cpp
    
  • 链接您的最终可执行文件:
    c++ file1.o file2.o file3.o
    

    您可以使用可选的 -o标志来指定输出程序名称。它可能默认为 a.out .

  • 最好使用某种构建工具(例如 make )来自动化此过程,否则您会发现它非常容易出错。

    关于xcode - 如何在 Mac 上通过命令行编译 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127573/

    相关文章:

    c++ - 隐式转换产生 "error: taking address of temporary"(GCC vs clang)

    c++ - Gcc - undefined reference ,但库包含匹配的符号

    ios - ld : library not found for -lFirebaseCore clang: error: linker command failed with exit code 1 (use -v to see invocation)

    objective-c - 将 const char* 转换为 NSString * 并转换回来 - _NSAutoreleaseNoPool()

    ios - NSUserDefaults 给声明阴影局部变量警告

    c++ - 为什么 GCC 生成的代码会从堆栈中读取垃圾?

    gcc - gcov 的段错误

    c++ - GCC 还是 MSVC,谁是正确的?

    objective-c - 对 <UISplitViewController : 0x133630> 的开始/结束外观转换的不平衡调用

    c++ - g++ 忽略头文件