1.C++学习必备网站推荐收藏
2.Facebook Open Platform编译FAQ
3.ShardingSphere 4.x FAQ
C++学习必备网站推荐收藏
在C++学习过程中,访问高质量的网站能够显著提升理解和实践能力。以下精选网站,为C++学习者提供了丰富的资源,帮助大家在编程的道路上更进一步。
首先推荐cppreference,laravel源码分析教程这个网站提供了C++标准库函数的实例和详细说明,对学习者而言,是深入了解C++标准库的不二之选。
接着是cppreference的姊妹网站cplusplus.com,它不仅提供教程,还设有论坛,方便学习者交流和解答疑惑。网站内容丰富,对于理解C++的编程概念具有极大帮助。
对于源代码的学习,C++ Source Codes是一个宝藏,提供了多个C++源代码清单,涉及多种场景,适合深入实践和学习。k线图源码图解
若想了解C++常见问题及解决方法,访问isocpp.org/faq,这里整理了大量项目中遇到的问题解答,对高效编程大有裨益。
为了更深入地了解C++标准模板库(STL),不妨查阅geeksforgeeks.org/the-c++-stl,这个资源提供了关于STL的详细介绍和实例,是学习C++时不可或缺的指南。
另外,网站如Free C/C++ Libraries、programmerworld.net/resources/cplusplus、thefreecountry.com/sources/cpp提供了免费的C++库和工具,覆盖了压缩、存档、游戏编程、标准模板库和GUI编程等领域,是实践和项目开发的宝贵资源。
对于希望深入了解C++不同应用领域的学习者,C和C++用户团体(C and C++ Users Group)提供了涵盖各种编程领域的新闻app源码java源代码,包括AI、动画、编译器、数据库、调试、加密、游戏、图形、GUI、语言工具、系统编程等。
CodeProject是一个国外的优秀网站,提供免费的代码与程序资源,用户可以发布自己的代码和详细文档说明,对于追求实践与理论结合的学习者而言,是一个极佳的资源库。
对于游戏相关的C++源代码,thoughtco.com是一个值得探索的资源,它提供了游戏编程相关的最新画质助手源码链接,是游戏开发爱好者的好去处。
最后,整理的C++ 学习资料网站涵盖了C++ ////新特性、入门教程、推荐书籍、优质文章、学习笔记、教学视频等,是全面系统学习C++的宝库。
以上网站资源,是C++学习者获取知识、实践编程、提升技能的宝贵平台,希望每位学习者都能从中获益,加速编程旅程。
Facebook Open Platform编译FAQ
1:下载源码:/fbopen/
2:根据readme的说明,把fbml所需的软件下载到dependencies目录下
3:fbml的php扩展的编译,本身有个脚本,不过一般情况下都不能顺利通过那脚本编译成功
错误提示1:
gconvert.c::2: error: #error GNU libiconv not in use but included iconv.h is 恶搞假红包源码from libiconv
解决办法:
修改build-all.py
'glib-2..6.tar.gz': ("./configure", "make", "sudo make install"),
改成
'glib-2..6.tar.gz': ("./configure --with-libiconv=gnu", "make", "sudo make install"),
错误提示2:
nspr4 -lpthread -ldl -L../../dist/bin -lmozjs -L/usr/local/lib -lgtk-x-2.0 -lgdk-x-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lcairo -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::Destroy()':
: undefined reference to `XFreePixmap'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XRenderFindStandardFormat'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XListPixmapFormats'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XFree'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xd): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XCreatePixmap'
collect2: ld returned 1 exit status
gmake[3]: *** [libgklayout.so] Error 1
gmake[3]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout/build'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout'
gmake[1]: *** [tier_9] Error 2
gmake[1]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla'
make: *** [default] Error 2
解决办法:
修改dependencies/mozilla/layout/build/Makefile.inifdef
MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / $(NULL)
改成ifdef MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / -L/usr/XR6/lib -lX -lXrender / $(NULL)
这个错误一般发生在firefox编译的时候,我一般都手动解压缩firefox软件,然后修改Makefile.in,然后在build-all.py中屏蔽解压缩firefox的语句就行
错误提示3:
In file included from js/jsarena.c::
js/jsbit.h:: error: size of array 'js_static_assert_line_' is negative
make[1]: *** [js/jsarena.o] Error 1
make: *** [src] Error 2
解决办法:
修改 src/js/jsbit.h 第行
S_STATIC_ASSERT(sizeof(unsigned long long) == sizeof(JSUword));
改成
S_STATIC_ASSERT(sizeof(unsigned long) == sizeof(JSUword));
这个错误发生在firefox编译成功后,进行fbml的编译时候发生的,如果你用build-all.py编译,不想进行前面的编译,可以根据脚本屏蔽前面的编译。
ShardingSphere 4.x FAQ
在ShardingSphere中,如果SQL执行不正确,首先需要开启sql.show配置,它在Sharding-Proxy以及Sharding-JDBC 1.5.0版本之后提供了帮助。此配置默认关闭,开启后,系统会将SQL解析上下文、改写后的SQL以及最终路由至的数据源的详细信息打印至info日志,方便调试。
遇到源码编译错误时,应了解ShardingSphere使用lombok实现代码简化,具体使用和安装细节可参考lombok官网。sharding-orchestration-reg模块需要先执行mvn install命令,根据protobuf文件生成gRPC相关的java文件。
在使用Spring命名空间时,若找不到xsd文件,其实Spring命名空间使用规范并未强制要求部署至公网地址。但考虑到部分用户的需求,相关xsd文件也部署至ShardingSphere官网。sharding-jdbc-spring-namespace的jar包中配置了xsd文件的位置,确保jar包内存在该文件即可。
对于Cloud not resolve placeholder异常,使用行表达式标识符建议使用$->{ ...},避免与Spring本身的属性文件占位符冲突。
在使用inline表达式时,注意Java的整数相除结果为整数,而inline表达式中的Groovy语法则返回浮点数。若需要获得除法整数结果,请使用A.intdiv(B)。
若只有部分数据库分库分表,确实需要将不分库分表的表配置在分片规则中。ShardingSphere会将多个数据源合并为一个逻辑数据源,不配置分片规则会导致无法准确判断应路由至哪个数据源。这时,可以采用配置default-data-source的方式,或单独管理不参与分库分表的数据源。
除了支持自带的分布式自增主键,ShardingSphere也能支持原生的自增主键。但需注意,原生自增主键不能同时作为分片键使用。由于ShardingSphere不知晓数据库表结构,原生自增主键不在原始SQL中,无法将其解析为分片字段。若自增主键非分片键,则无需关注;若作为分片键,ShardingSphere无法解析其分片值,可能导致SQL路由至多张表。
指定泛型为Long的SingleKeyTableShardingAlgorithm遇到ClassCastException问题,确保数据库表中字段与分片算法中的字段类型一致。例如,数据库中字段为int类型时,分片类型应为Integer,而非Long。
在SQLSever和PostgreSQL中,聚合列未加别名可能会抛出异常。这是因为这些数据库会自动为聚合列改名,ShardingSphere在结果归并时可能找不到相应的列。正确的SQL写法应包含别名。
在Oracle数据库使用Timestamp类型的OrderBy语句时,可能会抛出异常。解决方式是配置启动参数oracle.jdbc.J2EECompliant=true,或在项目初始化时设置System.getProperties().setProperty(“oracle.jdbc.J2EECompliant”, “true”);
使用Proxool配置多个数据源时,需要为每个数据源设置alias,以避免每次都从一个数据源获取连接。具体实现方法请参考Proxool官网。
ShardingSphere采用snowflake算法作为默认的分布式自增主键策略,这确保了分布式环境下生成的自增序列递增但不连续,且尾数多为偶数。在3.1.0版本中,尾数为偶数的问题已被解决。
在Windows环境下通过Git克隆ShardingSphere源码时,可能会遇到文件名过长的问题。为了解决,可执行特定命令启用Git对长文件名的支持,或通过注册表或组策略解除操作系统文件名长度限制。
若在运行Sharding-Proxy时找不到或无法加载主类org.apache.shardingshpere.shardingproxy.Bootstrap,可能是因为解压工具将文件名截断。解决方法是执行特定命令。
若实现了ShardingKeyGenerator接口但配置了Type却未生效,需要确保在META-INF/services中创建对应文件指定SPI实现类,或在配置中正确指定类型。ShardingSphere的扩展功能需要通过SPI注入才能生效。
当JPA与数据脱敏一起使用时,由于数据脱敏的DDL尚未完成,导致JPA实体类无法同时满足DDL和DML。解决方案需根据具体需求进行调整。
在配置了某个数据连接池的spring-boot-starter(如druid)和sharding-jdbc-spring-boot-starter后,系统启动报错可能是因为两者间的兼容性问题。应检查配置文件和依赖版本,确保兼容性。
在使用sharing-proxy时,动态在sharding-ui上添加新的logic schema,可通过sharding-ui的API实现,具体操作请参考sharding-ui文档。
在使用sharing-proxy时,使用合适的工具连接proxy通常取决于具体需求和环境,常见的连接工具包括JDBC客户端、命令行工具等,需根据实际场景选择。