我现在正在学习C++.我想要一个makefile,它将编译当前目录中的所有cpp文件以分隔可执行文件.例如:
在一个目录中有3个c ++文件,例如examp1.cpp,examp2.cpp和examp3.cpp.我想要一个makefile,它将编译并链接它们并提供examp1.exe,examp2.exe和examp3.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"或者它应该编译的任何东西.
我正在写一个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)