gpt4 book ai didi

c++ - 在 Eclipse 下为 C++ 项目运行 make

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:14 27 4
gpt4 key购买 nike

我正在 Ubuntu 10.10 下开发一个 C++ 应用程序,使用 g++ 和 automake。对于这个程序,我有两个 cpp 文件(main.cpp 和 forward.cpp,后者是一个测试类)和 forward.h;我还有以下生成文件:

main: \
forward.o
g++ -fPIC -g -Wall -D_REENTRANT -fno-exceptions -I/usr/local/Aria/include/ -L/usr/local/Aria/lib -lAria -lpthread -ldl -lrt \
-o simple_controller \
main.cpp \
forward.o

%.o : %.cpp
g++ -c -g -Wall -D_REENTRANT -fno-exceptions -I/usr/local/Aria/include/ $< -o $@

clean:
rm -fv *.o
rm -fv */*.o

当我将所有这四个文件复制到同一目录并从命令行 (bash) 调用“make”时,将调用 g++,我的程序将被正确编译。

好的,现在我想在 Eclipse 下实现同样的功能。所以我在 Eclipse 下创建了一个新的非托管 C++ 项目,这样我就可以提供我自己的 makefile(与上面列出的相同)。不幸的是,当我现在在 Eclipse 下使用“Build all”选项时,我可以看到以下控制台输出:

make 
make: *** No rule to make target `forward.o', needed by `main'. Stop.

由于我是Linux下的C++开发新手,使用g++和makefile,我不是很明白这个问题。我认为正确编译我的应用程序所需的一切都写在 makefile 中,因为它可以从命令行完美运行。但我似乎无法将相同的 makefile 1:1 复制到我的 Eclipse 项目中。

知道我在这里遗漏了什么吗?
预先感谢您的帮助!

最佳答案

当您构建项目时,eclipse 正在执行 make all 命令,因此您需要修改项目以使用 main 而不是 all 用于目标 eclipse 使用,或者将 all 规则添加到引用的 makefile回到主要规则。此外,我还会在 clean 步骤下添加一个命令来删除可执行文件。

修改后的 Makefile:

main: \
forward.o
g++ -fPIC -g -Wall -D_REENTRANT -fno-exceptions -I/usr/local/Aria/include/ - L/usr/local/Aria/lib -lAria -lpthread -ldl -lrt \
-o simple_controller \
main.cpp \
forward.o

%.o : %.cpp
g++ -c -g -Wall -D_REENTRANT -fno-exceptions -I/usr/local/Aria/include/ $< -o $@

clean:
rm -fv *.o
rm -fv */*.o
rm -fv simple_controller

all: main

关于c++ - 在 Eclipse 下为 C++ 项目运行 make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com