我在示例文件中有以下代码:
#include "SkCanvas.h"
#include "SkDevice.h"
#include "SkGLCanvas.h"
#include "SkGraphics.h"
#include "SkImageEncoder.h"
#include "SkPaint.h"
#include "SkPicture.h"
#include "SkStream.h"
#include "SkWindow.h"
Run Code Online (Sandbox Code Playgroud)
但是,此代码位于/ home/me/development/skia中的各种文件夹中(其中包括core/animator/images/ports/svg /等等).
如何让GCC认识到这条道路?
我想在使用Xcode时为所有项目添加〜/ include到我的包含路径,就像CPLUS_INCLUDE_PATH在Linux中设置环境变量一样.(有关相关的Linux问题,请参阅此处.)
这在Xcode中是否可行?我尝试设置上面的环境变量,但它似乎不起作用.(如果可能的话,我还想设置相关的路径,比如LIBRARY_PATH和LD_LIBRARY_PATH.)
是否有一个环境变量供GCC/G ++在编译期间查找.h文件?
我谷歌我的问题,有人说LIBRARY_PATH,C_PATH,C_INCLUDE_PATH,CPLUS_PATH,那么它是哪一个呢?
这是一个非常基本的问题.我一直在学习C++,到目前为止我只使用过标准库.我一直在包括<iostream>和没有问题的东西.现在我想使用Apache Xerces,所以我已经将它安装在我的机器上(Debian系统),并且我正在按照一个教程说明我需要包括:
#include <xercesc/sax2/SAX2XMLReader.hpp>
Run Code Online (Sandbox Code Playgroud)
但是g ++说"错误:xercesc/sax2/SAX2XMLReader.hpp:没有这样的文件或目录".在哪里看?我需要提供更多信息吗?
谢谢.
gcc在ubuntu上执行命令以生成JNI的.a或.so文件时,低于openjdk 8/oraclejdk8的错误.
$gcc -I/usr/lib/jvm/java-8-openjdk-amd64/include -c MainImpl1.c -o MainImpl1.o
In file included from MainImpl1.c:1:0:
/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
#include "jni_md.h"
^
compilation terminated.
$gcc -I/usr/lib/jvm/java-8-oracle/include -c MainImpl1.c -o MainImpl1.o
In file included from MainImpl1.c:1:0:
/usr/lib/jvm/java-8-oracle/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
#include "jni_md.h"
^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我已经给出了生成.a文件的示例,但同样也出现了.so文件生成问题.
但是同样的gcc命令适用于openjdk7/oraclejdk7.
这是什么问题?
我无法在Heroku上安装XML :: LibXSLT.尽管在Heroku stack cedar和cedar-14中列出了已安装的Ubuntu软件包,但看起来并没有安装所需的库.在这个问题中已经报告了类似的问题,但是没有在Heroku上报告,并且不允许安装新的Ubuntu软件包.gdbm
要重现错误,请创建一个最小的存储库,需要XML :: LibXSLT cpanfile:
$ git init
$ echo 'requires "XML::LibXSLT";' > cpanfile
$ echo 'sub { [200,[], ['Hello World']] }' > app.psgi
$ git add cpanfile app.psgi
$ git commit -m "initial commit"
Run Code Online (Sandbox Code Playgroud)
使用heroku-buildpack-perl创建一个新的Heroku应用程序来运行cpanm:
$ heroku create --stack cedar --buildpack https://github.com/miyagawa/heroku-buildpack-perl.git
$ git push heroku master
Run Code Online (Sandbox Code Playgroud)
错误日志包含
! Installing XML::LibXSLT failed. See /app/.cpanm/work/1412752363.1663/build.log for details. Retry …Run Code Online (Sandbox Code Playgroud) 在CentOS 5.7机器上,我无法安装最新版本的mysql2 gem; 它找不到errmsg.h:
/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... no
checking for mysql_query() in -lmysqlclient... yes
checking for mysql.h... no
checking for mysql/mysql.h... yes
checking for errmsg.h... no
-----
errmsg.h is missing. please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
Run Code Online (Sandbox Code Playgroud)
mysql头文件存在于/ usr/include/mysql中.服务器上存在旧版本的gem,因此必须在一个点上成功构建.
请注意,它在检查mysql.h时失败,但在mysql/mysql.h上成功.但是,对于errmsg.h,它不会重复此操作.通过这个我猜它不是在看/ usr/include,但我不确定.
我已经挖掘了extconf.rb源代码并发现它正在使用该have_header方法来定位头文件.我调试了执行,发现它正在寻找"mysql/errmsg.h"的相对路径.但我没有找到任何解释它如何将其扩展为绝对路径的文档.
has_header在哪里以及如何找到它的头文件?
我在 /my/path/to/file 文件夹中有几个头文件。我知道如何将这些文件包含在新的 C 程序中,但每次我都需要在包含头文件之前键入头文件的完整路径。我可以在 linux 中设置一些路径变量,以便它自动查找头文件吗?