当C程序编译但一到运行就告诉你缺configuration, logging等类,反正遇到缺类的情况就网CLASSPATH中加×。jar的路径吧;
注意 CLASSPATH是在文件里搜索类;(没有递归搜索)
而PATH是在文件里搜索文件(递归式搜索)
编译时出现各种hdfs.h找不到:
当我像下面写makefile文件就没问题了:
HADOOP_INSTALL=/usr/local/hadoop JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386 PLATFORM=Linux-i386-32 CPPFLAGS= -I$(HADOOP_INSTALL)/src/c++/libhdfs LIB = -L$(HADOOP_INSTALL)/c++/Linux-i386-32/lib LIB += -I${JAVA_HOME}/include libjvm=${JAVA_HOME}/jre/lib/i386/client/libjvm.so LDFLAGS += -lhdfs test: test.c gcc $? $(CPPFLAGS) $(LIB) $(LDFLAGS) $(libjvm) -o $@ clean: rm test
在运行时各种类或库so文件找不到
./test: error while loading shared libraries: ***.so.0:cannot open shared object file: No such file or directory 解决方法:把xxx.so.0所在的目录添加到/etc/ld.so.conf中,然后/sbin/ldconfig –v下就可以了。
我的~/.bashrc添加配置的环境变量:
就正常了:
另外可参考:http://blog.csdn.net/johnnywww/article/details/7530364
export HADOOP_INSTALL=/usr/local/hadoop export HADOOP_JARDIR=${HADOOP_INSTALL}/jardir export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$HADOOP_JA RDIR/hadoop-core-1.0.4.jar:$HADOOP_JARDIR/hadoop-tools-1.0.4.jar:$HADOOP_JAR DIR/commons-configuration-1.6.jar:$HADOOP_JARDIR/commons-logging-1.1.1.jar:$ HADOOP_JARDIR/commons-logging-api-1.0.4.jar:$HADOOP_JARDIR/log4j-1.2.15.jar: $HADOOP_JARDIR/commons-lang-2.4.jar
1.如果要删除某个变量可用:
unset 变量名
2.当要修改:
set 变量名
3.当要临时添加一个变量:
export 变量名=
4.当要永久,则改配置文件吧;
/etc/profile
~/.bashrc
在里面添加:
export 变量名=