Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用CMake改变油嘴滑舌 问题是:_Cmake_Glib - Fatal编程技术网

用CMake改变油嘴滑舌 问题是:

用CMake改变油嘴滑舌 问题是:,cmake,glib,Cmake,Glib,所以,我正在用C编写一个应用程序,它使用glib的哈希表函数。不幸的是,由于Homebrew将glib安装到子目录中,预写的include被破坏,并且完全无法编译。问题的一部分与glib必须隐藏自己的倾向有关,但我知道如何解决这个问题,并编写了一个可行的makefile。然而,我仍然希望能够像往常一样使用我的IDE,这似乎会在将来导致其他问题,所以我想知道是否有人有任何建议。 下面是makefile、cmakelists.txt和错误 请注意,我的问题不包括CMake,这是因为Homebrew已

所以,我正在用C编写一个应用程序,它使用glib的哈希表函数。不幸的是,由于Homebrew将glib安装到子目录中,预写的include被破坏,并且完全无法编译。问题的一部分与glib必须隐藏自己的倾向有关,但我知道如何解决这个问题,并编写了一个可行的makefile。然而,我仍然希望能够像往常一样使用我的IDE,这似乎会在将来导致其他问题,所以我想知道是否有人有任何建议。 下面是makefile、cmakelists.txt和错误

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

#include <glib/galloca.h>
#include <glib/garray.h>
#include <glib/gasyncqueue.h>
#include <glib/gatomic.h>
#include <glib/[...]>
编译错误
1-似乎没有找到galloc,你有吗?2.-你能发布你的CMakeLists.txt吗?@Joel:是的,整个glib库都已经安装好了,可以用上面的makefile文件编译它,这就是一个例子。注意,此makefile仅适用于使用自制软件安装glib的mac。您是否尝试告诉cmake在哪里可以找到glib?还有一件事…永远不要手动编辑cmake的makefiles…每次修改缓存时,它们都会被覆盖。编写自己的makefiles时,可能会出现重复的情况。但是不要在你的项目中使用CMake,也不要用[CMake]标记你的问题。除非你真的知道自己在做什么,否则混合使用自动生成和手写的makefile会导致问题。
#include <glib-2.0/glib/galloca.h>
#include <glib-2.0/glib/garray.h>
# 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
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)