相关疑难解决方法(0)

Makefile将目录中的所有cpp文件编译成单独的可执行文件

我现在正在学习C++.我想要一个makefile,它将编译当前目录中的所有cpp文件以分隔可执行文件.例如:

在一个目录中有3个c ++文件,例如examp1.cpp,examp2.cppexamp3.cpp.我想要一个makefile,它将编译并链接它们并提供examp1.exe,examp2.exeexamp3.exe

我已经创建了一个bash脚本来编译所有这些脚本并创建exes但我认为; 这不是确切的方法.

我有一个".c"的Makefile,但这似乎不适用于此.它只是创建目标文件而不是实际链接它.它如下:

SRCS=$(wildcard *.c)
OBJS=(SRCS:.c=.o)
all: $(OBJS)
Run Code Online (Sandbox Code Playgroud)

上面的代码将所有新的和修改过的".c"文件编译为当前目录中具有相同名称的".o"文件.

我用来创建可执行文件的bash脚本如下:

for i in ./*.cpp
do
   g++ -Wno-deprecated $i -o `basename $i .cpp`".exe"
done
Run Code Online (Sandbox Code Playgroud)

这意味着我想要放在那个目录中的任何".cpp"文件,使用简单的"make all"或者它应该编译的任何东西.

c++ makefile

8
推荐指数
1
解决办法
2万
查看次数

未定义的引用`Class :: Class()'

我正在写一个GTKmm窗口程序; 主窗口创建两个按钮,一个用于英语,一个用于中文.用户可以单击按钮以适当的语言显示不同的窗口.目前我在主窗口内初始化多项容器时遇到问题.它是MainWindowPane类型的对象,它继承了Gtk :: HBox.

当我尝试制作时,编译器发出以下错误:

$ make 
g++ -g `pkg-config gtkmm-2.4 --cflags` -c MainWindow.cpp  
g++  -g -o QPI_frontend main.o MainWindow.o StartButton.o `pkg-config gtkmm-2.4 --libs`  
MainWindow.o: In function `MainWindow':  
/home/dmurvihill/Documents/QPI_frontend/MainWindow.cpp:9: undefined reference to   `MainWindowPane::MainWindowPane()'  
/home/dmurvihill/Documents/QPI_frontend/MainWindow.cpp:9: undefined reference to  `MainWindowPane::MainWindowPane()'  
collect2: ld returned 1 exit status  
make: *** [QPI_frontend] Error 1  
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本的gcc和pkg-config来包含适当的库.我也是一个java人.

/*
 * MAIN_WINDOW.H
 * Responsible for creating "slave" RSED windows. Can create English or Chinese
 * versions of the demo, and can destroy them all with one click.
 */  
#ifndef …
Run Code Online (Sandbox Code Playgroud)

c++ gtk gcc g++ gtkmm

2
推荐指数
1
解决办法
9532
查看次数

标签 统计

c++ ×2

g++ ×1

gcc ×1

gtk ×1

gtkmm ×1

makefile ×1