编译问题集合

(1)链接提示 "/usr/bin/ld: cannot find -lz"

#yum install zlib-devel

(2)warning: "this decimal constant is unsigned only in ISO C90"

原因是,c语言里面的常量默认是一个32位的有符号整型数。如果整数常量无法用32位的有符号整型数表示,所以会报警告。

解决方法是在整数常量后面加上 UL或者L , 比如:600000000UL

(3)version `GLIBCXX_3.4.21‘ not found

系统原始的c/c++库是老版本的,放置在 /usr/lib/ 下

#strings /usr/lib/libstdc++.so.6  |grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

lrwxrwxrwx.  1 root root       19 Nov 30  2013 libstdc++.so.6 -> libstdc++.so.6.0.13

-rwxr-xr-x.  1 root root   942040 Nov 21  2013 libstdc++.so.6.0.13

由于升级了gcc 5.2.0,放置在 /usr/lib/ 下

#strings /usr/local/lib/libstdc++.so.6  |grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_3.4.14

GLIBCXX_3.4.15

GLIBCXX_3.4.16

GLIBCXX_3.4.17

GLIBCXX_3.4.18

GLIBCXX_3.4.19

GLIBCXX_3.4.20

GLIBCXX_3.4.21

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

重新软连接一下libstdc++.so

#mv ./libstdc++.so.6 ./libstdc++.so.6.bak

#ln -s /usr/local/lib/libstdc++.so.6.0.21  libstdc++.so.6

时间: 2024-10-03 13:20:13

编译问题集合的相关文章

cocos2d-x 编译问题集合之error C2440: “类型转换”: 无法从“void (__thiscall ::* )(void)”转换为“

1.提示为 error C2440: "类型转换": 无法从"void (__thiscall xx::* )(void)"转换为"cocos2d::SEL_CallFuncN" 提示前 调用语句为 callfuncN_selector(GameMenu::menuEnter) menuEnter这个方法里边是没有形参的 导致了这个问题出现 修改办法为 将menuEnter这个方法改成menuEnter(CCNode * node) 加入这个形参

通过反射了解集合泛型的本质

通过反射了解集合泛型的本质 import java.lang.reflect.Method; import java.util.ArrayList; /** * 通过反射了解集合泛型的本质 * @author shm * */ public class MethodDemo02 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("hello"); list.add(

reflect 反射结合集合泛型的总结

集合泛型: 可以放任何对象的 ArrayList  ArrayList list = new ArrayList();  没有限定泛型类型. list.add("lilin");list.add(100);System.out.println(list);//很容得知结果能够是["lilin",100]; ArrayList<String> list1 = new ArrayList<String>(); 限定了只能存放String类型的数据

Java反射的理解(六)-- 通过反射了解集合泛型的本质

Java反射的理解(六)-- 通过反射了解集合泛型的本质 上述写了那么多,我们可能会有个疑问,为什么要用反射,步骤比我们常规的加载类操作复杂多了,别急,这个问题我最后才解答,我们先来了解集合泛型的本质. 直接上代码: import java.lang.reflect.Method; import java.util.ArrayList; public class MethodDemo4 { public static void main(String[] args) { ArrayList li

Java Reflection 相关及示例

Java Reflection 相关及示例 前言: 代码有点长.贴出github地址:https://github.com/andyChenHuaYing/scattered-items/tree/master/items-java-reflection 测试目标类:TargetClass.自定义的辅助类比较多.在这里不贴了.篇幅有限.并且测试也简单.因此测试类也没有提及. 一:简介 Java Reflection是针对Class也就是我们平常说的类而言的.用于操作Java中的Class.在Ja

由浅到深理解java反射

1.基础概念 class类: 1.1java是面向对象的,但是在java中存在两种东西不是面向对象的 一种是普通的数据类型,这也是封装数据类存在的原因. 二种是静态静态成员. 1.2所以我们首先要理解,类也是一种对象,类是java.lang.Class类的对象. 1.3反射的操作其实是执行了编译,获得了类的编译信息,也就是字节码. 1.4获取类类型可以有三种方式: DemoGetClassType.java /** * Created by garfield on 2016/10/11. * 三

Java —— Reflect反射机制

Class类的使用 OOP的世界里,万事万物皆对象.类是谁的对象呢?——类是对象,类是java.lang.Class类的实例对象!There is a class named class. 实例: //有一个类 class Foo { void print() {System.out.println("Foo");} } //在main函数里: public static void main(String[] args) { //Foo这个类也是一个实例对象,Class类的实例对象,如

JVM参数调优:Eclipse启动实践

本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java Virtual Machine)的架构,垃圾收集的介绍等.这里摘录出关于配置 JVM 基本参数来调优 Eclipse 启动的过程,比较初级,供初学者参考. 基础知识 针对 JVM 的参数调优主要集中在数据区大小的控制和垃圾回收策略的选择.关于 JVM 运行机制等更多内容可参考其他博文 JVM 的运行时数据区

了解,总结android开发框架

----------------------------------------------------------------------------------------------------------- android 层次结构: 文件类型 语言 android package *.apk java/xml system/app android framework *.jar   java system/frameword    JNI接口    NDK *.so   C/C++/A