在Xcode中使用Makefile-或替代IDE

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

我不熟悉Xcode,Makefile和一般编程。

我已经获得了可以使用Makefile构建的现有C ++代码。使用Makefile,我可以毫无问题地在Mac(MacOS 10.14.6)上构建和运行可执行文件。

Makefile的开始是

CC = g++-mp-9 -Wall -O2 -std=c++14 -fopenmp
DEBUG = 
CFLAGS = -c $(DEBUG) -I/opt/local/include
LFLAGS = $(DEBUG) -L/opt/local/lib -framework Accelerate -march=native -lfftw3 -lfftw3_threads -lopenblas -lm -lpthread -larmadillo

myproj: $(OBJS)
    $(CC) -o myproj $(OBJS) $(LFLAGS)

main.o: main.cpp const.h functions.h
    $(CC) $(CFLAGS) main.cpp
...

其中myproj是生成的可执行文件。

我想使用Xcode 11的调试功能(或任何现代的IDE-参见下面的[[ALTERNATIVELY])来探索和学习我想使用的代码。在these instructions之后,我创建了一个命令行Xcode项目并设置了一个外部构建目标。

但是,当我尝试在Xcode中构建它时,出现以下错误

g++-mp-9 -Wall -O2 -std=c++14 -fopenmp -c -I/opt/local/include main.cpp make: g++-mp-9: No such file or directory make: *** [main.o] Error 1

这很奇怪,因为我的Makefile可以正常工作,并且在命令行上我的系统可以找到编译器:

>$ whereis gcc /usr/bin/gcc

有人可以解释为什么Xcode找不到编译器,以及我怎么解决? (有关使用Xcode欺骗旨在使用Makefile构建的代码的任何提示/警告,将不胜感激!)

交替地

我不喜欢使用Xcode的想法,我只是认为在Mac上工作会很自然。如果还有另一个具有良好调试器的IDE,它更适合使用Makefile构建命令行可执行文件,请告诉我!
xcode gcc makefile ide
1个回答
0
投票
[借助MadScientist的帮助,我发现了[b]环境变量未从bash([c0])导入的问题。通过反复试验,我得出结论,我需要在“构建设置”中将正确的PATH设置几个位置,并在创建新的外部构建目标时勾选see also here复选框。

供以后参考,这是我使用的完整过程。回想一下我的问题是我想-将gnu Makefile项目导入Xcode 11-该项目是一组源文件和一个Makefile,它们生成了要在命令行上运行的程序,-源文件(因此包括Makefile)取决于需要在Xcode中设置的PATH中找到的库(在我的情况下,我已经通过MacPorts安装了库)。

    Pass build settings in environment
  1. 在对话框中选择PATH,产品名称等和语言。输入您的项目位置。
  2. 删除默认目标和两个默认文件夹。
  3. File > New > New Project创建一个新目标,然后单击macOS > Command Line Tool。为新目标选择一个(产品)名称,然后选择构建工具(我的名称为File > New > Target...)。
  4. ((在编辑器区域中选择了第4步中的新目标)在Cross-platform > External Build System选项卡中,选择Makefile所在的/将位于的/usr/bin/make
  5. 确保您勾选Info > External Build Tool Configuration复选框
  6. 在编辑器区域中选择项目。通过转到Directory选项卡,单击Pass build settings in environment,在外部库中设置正确的PATH,然后在第一列中添加Build Settings > All,然后在第二列中将所需的路径添加到库中(在我的情况下+ > Add User-Defined Setting将路径附加到我随MacPorts安装的库中。
  7. ((我不知道此步骤是否绝对必要,但是无论如何)单击方案菜单,然后单击PATH${PATH}:/opt/local/bin:/opt/local/sbin。然后在Edit scheme...下添加Product > Scheme > Edit scheme...,如步骤6所示。
  8. 单击方案菜单,然后选择新目标,以便在其旁边打勾(因此这是活动目标?)。
  9. 例如,将源文件添加到项目中将它们从Finder拖放到导航区域。确保选中Run > Arguments > Environment Variables复选框。
  10. [确保在Makefile中,编译器设置了PATH标志以启用调试。
  11. Add to target进行构建。
  12. 一旦构建,通过选择-g来告诉Xcode可执行文件在哪里(按照步骤7),然后选择Cmd+B,导航到项目文件夹,然后选择在步骤11中构建的命令行可执行文件。
  13. Edit scheme...运行。
  14. 也许我不需要某些步骤。我很乐意了解是否有更好的方法可以做到这一点。
© www.soinside.com 2019 - 2024. All rights reserved.