用CMake改变Glib

时间:2016-04-02 03:40:59

标签: cmake glib

问题:

所以,我在C中编写了一个使用glib哈希表函数的应用程序。不幸的是,因为Homebrew将glib安装到一个子目录中,所以预先编写的包含被破坏,并且完全无法编译。部分问题与glib必须隐藏的趋势有关,但我知道如何解决这个问题,并编写了一个有效的makefile。但是,我仍然希望像往常一样能够使用我的IDE,这似乎可能在将来引起其他问题,所以我想知道是否有人有任何建议。 下面是makefile,cmakelists.txt和错误。

请注意我的问题不包括CMake,这是因为Homebrew已将其安装到/usr/lib/local/glib-2.0/glib.h,并且它包含的头文件位于/usr/lib/local/glib-2.0/glib/下。不幸的是,所有的glibs头都包括其他的

#include <glib/galloca.h>
#include <glib/garray.h>
#include <glib/gasyncqueue.h>
#include <glib/gatomic.h>
#include <glib/[...]>

这些应该是

#include <glib-2.0/glib/galloca.h>
#include <glib-2.0/glib/garray.h>

e.t.c,你明白了

生成文件

# Compiler
CC = gcc
#CFlags
CFlags = -g -Wall -I/usr/local/Cellar/glib/2.46.2/include/glib-2.0 -I/usr/local/Cellar/glib/2.46.2/lib/glib-2.0/include -I/usr/local/opt/gettext/include -L/usr/local/Cellar/glib/2.46.2/lib -L/usr/local/opt/gettext/lib -lglib-2.0 -lintl -D_REENTRANT -I/usr/local/Cellar/gtk+3/3.18.9/include/gtk-3.0 -I/usr/local/Cellar/glib/2.46.2/include/gio-unix-2.0/ -I/usr/local/Cellar/cairo/1.14.6_1/include/cairo -I/usr/local/Cellar/libepoxy/1.3.1/include -I/usr/local/Cellar/pango/1.38.1/include/pango-1.0 -I/usr/local/Cellar/harfbuzz/1.2.4/include/harfbuzz -I/usr/local/Cellar/pango/1.38.1/include/pango-1.0 -I/usr/local/Cellar/atk/2.18.0_1/include/atk-1.0 -I/usr/local/Cellar/cairo/1.14.6_1/include/cairo -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I/usr/local/Cellar/fontconfig/2.11.1_2/include -I/usr/local/Cellar/freetype/2.6.3/include/freetype2 -I/usr/local/Cellar/libpng/1.6.21/include/libpng16 -I/usr/local/Cellar/gdk-pixbuf/2.32.3/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.21/include/libpng16 -I/usr/local/Cellar/glib/2.46.2/include/glib-2.0 -I/usr/local/Cellar/glib/2.46.2/lib/glib-2.0/include -I/usr/local/opt/gettext/include

TARGET = main
all: $(TARGET)
$(TARGET): $(TARGET).c
    $(CC) $(CFlags) -o $(TARGET) $(TARGET).c
clean:
    $(RM) $(TARGET)

编译错误

/Applications/CLion.app/Contents/bin/cmake/bin/cmake --build /Users/ennis/Library/Caches/CLion12/cmake/generated/85d4a0ab/85d4a0ab/Debug --target all -- -j 4
[ 50%] Building C object CMakeFiles/TaskAppBuilder_C.dir/main.c.o
In file included from /Users/ennis/TaskAppBuilder-C/main.c:4:
In file included from /Users/ennis/TaskAppBuilder-C/main.h:15:
In file included from /Users/ennis/TaskAppBuilder-C/glib.h:30:
/usr/local/include/glib-2.0/glib.h/galloc.h:32:10: fatal error: 'galloc.h' file not found
#include <galloc.h>
         ^
1 error generated.
make[2]: *** [CMakeFiles/TaskAppBuilder_C.dir/main.c.o] Error 1
make[1]: *** [CMakeFiles/TaskAppBuilder_C.dir/all] Error 2
make: *** [all] Error 2

的CMakeLists.txt

cmake_minimum_required(VERSION 3.3)
project(TaskAppBuilder_C)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11")


set(SOURCE_FILES main.c main.h)
add_executable(TaskAppBuilder_C ${SOURCE_FILES} main.c main.h)

0 个答案:

没有答案