相关疑难解决方法(0)

如何制作SIMPLE C++ Makefile?

我们需要使用Makefile将所有内容整合到我们的项目中,但我们的教授从未向我们展示过如何操作.

我只有一个档案a3driver.cpp.驱动程序从某个位置导入类"/user/cse232/Examples/example32.sequence.cpp".

就是这样,其他一切都包含在内.cpp.

我如何制作一个简单的Makefile来创建一个名为a3a.exe?的可执行文件?

c++ makefile

285
推荐指数
7
解决办法
42万
查看次数

如何在Windows中运行makefile

我有包含文件的文件夹:

在此输入图像描述

如何运行makefile?在控制台中我键入:make并且它表示没有找到makefile.

windows makefile

19
推荐指数
2
解决办法
7万
查看次数

如何在Make中使用pkg-config

我想编译最简单的GTK程序.我可以使用命令行编译它:

gcc $(pkg-config --cflags --libs gtk+-3.0)  main.c -o main.o
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用Make它不起作用:

CFLAGS=-g -Wall -Wextra $(pkg-config --cflags)
LDFLAGS=$(pkg-config --libs gtk+-3.0)
CC=gcc

SOURCES=$(wildcard *.c)
EXECUTABLES=$(patsubst %.c,%,$(SOURCES))

all: $(EXECUTABLES)
Run Code Online (Sandbox Code Playgroud)

它告诉我这个:

gcc -g -Wall -Wextra    -c -o main.o main.c
main.c:1:21: fatal error: gtk/gtk.h: No such file or directory
 #include <gtk/gtk.h>
                     ^
compilation terminated.
<builtin>: recipe for target 'main.o' failed
make: *** [main.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我在哪里将Make(pkg-config --cflags --libs gtk + -3.0)粘贴在Makefile中以使其编译?

非常感谢你的帮助.

c gtk gcc makefile

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

Ubuntu 11.10上的C和C++编程

我最近安装了Ubuntu 11.10以及CodeBlocks IDE,我知道默认情况下我有gcc和std库.

我的问题是:

  • 你对Ubuntu上的新C++程序员有什么建议吗?
  • 我应该从一开始就得到的任何图书馆?
  • 我错过了一个非常好的IDE?(YMMV,但我更喜欢在IDE中工作)
  • 从一开始我应该注意任何编程恩赐或陷阱?

c c++ linux ubuntu

17
推荐指数
5
解决办法
1万
查看次数

C开发和GTK +入门

我是一个专门的Python开发人员,但我现在正在进行C编程,我开始时遇到了很多麻烦.我似乎无法掌握编译和包括库.此时,我只是确定了我需要的库,并尝试使用基本的"hello,world"应用程序编译它们,以确保我的环境设置可以进行实际的编程.

这是一个DBus后端应用程序,它将使用GIO连接到DBus.

#include <stdlib.h>
#include <gio/gio.h>

int 
main (int argc, char *argv[])
{
    printf("hello, world");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试编译:

~$ gcc main.c
main.c:2:21: fatal error: gio/gio.h: No such file or directory
 #include <gio/gio.h>
Run Code Online (Sandbox Code Playgroud)

我相信,我已经安装了正确的软件包指示在这里,并在gio.h存在/usr/include/glib-2.0/gio/gio.h.

我在网上发现了一个向gcc添加搜索目录的命令,但是这导致了其他错误:

~$ gcc -I /usr/include/glib-2.0/ main.c 
In file included from /usr/include/glib-2.0/glib/galloca.h:34:0,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from main.c:2:
/usr/include/glib-2.0/glib/gtypes.h:34:24: fatal error: glibconfig.h: No such file or directory
 #include <glibconfig.h>
                        ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

必须有一些相对简单的方法才能设置一些选项/变量(makefile?)来自动包含必要的标题.我还将使用Eclipse-CDT或Anjuta作为IDE,并希望能够帮助修复导入路径(或者在C中调用它).

任何帮助是极大的赞赏.

gtk gcc

5
推荐指数
1
解决办法
5063
查看次数

如何使用GCC生成ELF文件?

我正在Linux OS上编写C和C++代码,我正在使用GCC.完成我的代码后,我想生成一个ELF文件.我只能生成"a.out"文件而我不需要它.我怎样才能获得ELF文件?ELF文件出现的原因是什么?或者是否可以使用此程序生成此文件?

executable gcc file-format compilation elf

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

gcc不会编译SDL C程序(对SDL函数的未定义引用)

我最近搬到了linux,我遇到了使用gcc编译SDL C程序的问题.

我正在使用的命令:

gcc `sdl-config --cflags --libs` -o main main.c
Run Code Online (Sandbox Code Playgroud)

即使分离sdl-config标志:

gcc `sdl-config --cflags` -c main.c
gcc `sdl-config --libs` -o main main.o
Run Code Online (Sandbox Code Playgroud)

我得到了同样的错误:

/tmp/ccHYyjKd.o: In function `main':
main.c:(.text+0xe): undefined reference to `SDL_SetMainReady'
main.c:(.text+0x18): undefined reference to `SDL_Init'
main.c:(.text+0x31): undefined reference to `SDL_SetVideoMode'
main.c:(.text+0x54): undefined reference to `SDL_MapRGB'
main.c:(.text+0x6b): undefined reference to `SDL_FillRect'
main.c:(.text+0x77): undefined reference to `SDL_Flip'
main.c:(.text+0x83): undefined reference to `SDL_WaitEvent'
main.c:(.text+0x90): undefined reference to `SDL_Quit'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我非常简单的程序:

#include <stdio.h>
#include <stdlib.h>
#define …
Run Code Online (Sandbox Code Playgroud)

c linux gcc sdl

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

Linux:找不到Glib

我有一个使用GLib库的示例C项目。在该源代码中,它使用:

#include <glib.h>
Run Code Online (Sandbox Code Playgroud)

编译时,发现以下错误:“ Glib.h:没有这样的文件或文件夹”。我有谷歌,发现我应该安装这个库。所以我用那些命令:

apt-get install libgtk2.0-dev
apt-get install glade
Run Code Online (Sandbox Code Playgroud)

之后,我检查了一下并发现系统中已存在此头文件:usr/include/glib-2.0/glib.h但是,当我编译时,仍然遇到上面的问题。

所以我将包含行更改为:

#include <glib-2.0/glib.h>
Run Code Online (Sandbox Code Playgroud)

因此,在那之后,当我编译时,我在glib.hheader中遇到错误:

#ifndef __G_LIB_H__
#define __G_LIB_H__

#define __GLIB_H_INSIDE__

#include <glib/galloca.h>
#include <glib/garray.h>
// more code here
Run Code Online (Sandbox Code Playgroud)

glib/galloca.h : no such file or directory. 由于此错误在系统头文件中,因此我无法再进行修改并且仍然无法编译。

我不知道该如何解决。我读了一些帖子,他们更改了makefile。但是,由于我的项目是由IDE(CodeBlock)自动编译的,因此我无法真正编写Makefile,因此该方法不适合我。

请告诉我解决此问题的方法。

谢谢 :)

c linux

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

当我在makefile中使用"gcc"时,在创建之后,我得到了一个"cc"输出

例如:

有3个源文件{ main.c test1.c test2.c}在目录中,命名的目录文件test3,并且有一个名为源文件test.c中的目录test3.

现在我想创建一个makefile来编译和链接这四个源文件.

这是我的Makefile:

# Cancel statement "CC=gcc"

src:=$(wildcard *.c) test3.c
obj:=$(patsubst %.c,%.o,$(src))

main:$(obj)
    gcc -o main $(obj)

.PHONY:clean

clean:
    rm *.o *~
Run Code Online (Sandbox Code Playgroud)

当我打电话make来编译它们时,我得到了这样的输出:

cc    -c -o main.o main.c
cc    -c -o test1.o test1.c
cc    -c -o test2.o test2.c
cc    -c -o test3.o test3/test3.c
gcc -o main main.o test1.o test2.o test3.o
Run Code Online (Sandbox Code Playgroud)

我知道'cc'在Linux中与'gcc'相关联.

我不明白为什么Make调用cc编译这四个源文件,但调用gcc链接目标文件?

c linux gcc makefile

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

标签 统计

c ×5

gcc ×5

linux ×4

makefile ×4

c++ ×2

gtk ×2

compilation ×1

elf ×1

executable ×1

file-format ×1

sdl ×1

ubuntu ×1

windows ×1