N年前学的makefile,当时还勉强能写一些简单的工程编译,现在已经基本忘了。makefile确实编写复杂,而且平时也不是经常使用,容易忘记。偶识了scons,一切都变的简单了。最近研究了下scons,原来需要上百行的makefile编译过程,现在只需要十行不到,而且没有makefile那些繁杂的结构语法,完全使用python语言就可以进行编译脚本编写,非常好记忆和编译一些大的工程。 直接使用apt-get install scons命令就可以完成安装,需要python环境。 Scons命令
PHP 编译完成后,可以通过一个简单的函数 phpinfo() 查看关于 PHP 的所有信息。以下介绍的扩展模块一览,皆全部来自于函数 phpinfo() 的输出信息。 SAPI Modules 首先介绍一下什么是 SAPI Modules,SAPI 即 Server API,Server Application Programming Interface,服务器应用程序编程接口。 ---- 1、Apache 2.0 Handler(apache2handler) 用于 Apache 2 的模块,当安装的是
可见,nginx缺少SSL模块支持。这是因为我当年建站的时候根本没用到SSL啊,所以以前编译nginx的时候使用了不带SSL支持的默认编译参数。 为了让nginx添加SSL模块,只能重新编译它。但是,如何在现有nginx的基础上,添加一个支持SSL的编译参数呢?首先要找回原来编译nginx时的编译参数,然后再加上支持SSL的编译参数。如果不这样做,那么编译出来的nginx可能就会有问题(某些旧的编译参数被去掉了,使得nginx不能支持某些功能)。 所以先查看旧的nginx的编译参数:nginx -V 大写V 输出的信息中,最重要的一句是: configure arguments: --prefix=/usr/local/nginx 可见,当时我编译nginx的时候,只是指定了一个安装路径,没有其他特殊的编译参数。那么现在事情就好办了:回到nginx的源码目录下,加上SSL支持参数重新编译:
此错误对应的出错代码为EOVERFLOW,原因可能是目标文件超过2GB大小。
MySQL 编译参数多而复杂,让新手感到很头大,如果是正式生成环境安装 MySQL,没有充足的时间去研究每一个参数代表的意义,个人建议使用余洪春前辈整理的编译参数,便捷高效! MySQL 的线上安装建议采取编译安装的方法,这样性能上有较大提升,,源码包的编译参数会默认以 Debgu 模式生成二进制代码,而 Debug 模式给 MySQL 带来的性能损失是比较大的,所以当我们编译准备安装的产品代码时,一定不要忘记使用“—without-debug”参数禁用 Debug 模式。 而如果把—with-mysqld
SpiderMonkey是Firefox使用的脚本引擎,V8是Google Chrome使用的脚本引擎。这篇文章介绍了怎样在自己的C++程序中嵌入这两种脚本引擎,以及简单做了一些横向的对比。
2. 升级前到生产环境服务器查看当前版本的编译参数,然后采用相同编译参数进行源码编译测试,检查是否能够正常编译,若无法正常编译可考虑更换目标版本
1、nginx编译参数: nginx -V(大写) #注意:需保证nginx在环境变量中,或者使用这样的形式:/user/local/nginx/sbin/nginx -V 2、apache编译参数 cat your_apache_dir/build/config.nice 3、php编译参数: php -i |grep configure #或者 /user/local/php/bin/php -i |grep configure 4、mysql编译参数: cat /user/local/mysql/bi
cat /usr/local/mysql/bin/mysqlbug|grep configure
TIOBE每个月都会新鲜出炉一份流行编程语言排行榜,这里会列出最流行的20种语言。排序说明不了语言的好坏,反应的不过是某个软件开发领域的热门程度。语言的发展不是越来越common,而是越来越专注领域。有的语言专注于简单高效,比如python,内建的list,dict结构比c/c++易用太多,但同样为了安全、易用,语言也牺牲了部分性能。在有些领域,比如通信,性能很关键,但并不意味这个领域的coder只能苦苦挣扎于c/c++的陷阱中,比如可以使用多种语言混合编程。
百度网盘地址:https://pan.baidu.com/s/1d9ArRH6adhDUGiJvRqnZMw
上一篇讲到公司的PC官网商城的 js css 是使用Nginx来合并的。我个人还是觉得这种方式蛮奇怪的
写这篇文章的主要目的是为了总结这一个多月对tensorflow应用到c++语言上面走过的路。因为身边的人都少有使用c++实现tensorflow的使用,都是自己一点坑一点坑踩过来。所以想总结一番,也分享给大家一起探讨。第一次写,写的不好的地方请大家多多指正。我是在Github下载tensorflow源码,编译可以供vs2015使用的tensorflow库,然后将我们项目training得到的.ckpt文件固定成.pb文件,经过c++调用,跑出了想要做到的效果。这里介绍的是如何编译供c++使用的tensorflow库,并且是GPU版本。
因为现在都是宝塔、lnmp这些自动进行配置的,这个知识点平常很少需要用到,但了解一下,确实能让一些问题豁然开朗。
简单记录RocketMq的JDK8以上版本的编译问题,在RocketMq的github - issue里面讨论还挺多的。
zabbix使用了很久,安装的时候并没有选择复杂的源码编译安装,所以默认采用了apache的httpd提供web服务。由于对httpd并没有深入研究,而且个人对httpd的配置文件格式很不感冒,怎么办?当然是换nginx呀!顺便加上https证书安全安全。 本文中的环境如下: 系统版本:CentOS Linux release 7.4.1708 (Core) 软件版本: zabbix 4.0.0 nginx 1.16.0 php 5.6.40
创建好相关文件,下载了MinGW C++编译器,生成链接库.so后,运行Python程序总是提示错误,初步断定是32位和64位的问题,网上的解决方法都不适用,待解决。
centos7.3自带的vim是7.4.*版本, YouCompleteMe需要Vim 7.4.1578+ 我这里编译安装vim8.0
aar是Android Studio提供的一个依赖库系统,可以很方便的让主项目来使用库项目的代码、资源。 但如何来给一个aar库传递编译参数呢(传递代码配置是很方便的,通过接口即可,但编译参数是不行的
在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo。一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi开发的。由于我现在对 Qt比较熟悉,所以想着使用 Qt框架来开发这个 demo。在看源码的过程中,阴差阳错之间又去官网上重新下载了一次源码包,结果发现最新的 2.4.3版本里面就带有相关 App程序的 Qt实现。这样的话,就可以直接阅读现成的 Qt源码了。不过首先需要解决的问题是,要尝试将所给的源代码编译
GCC 在开启 -O2 编译优化后,会遇到编译器领域的两个著名问题:严格别名(Strict Aliasing)与整数环绕(Integer Wrap-around)。
编译优化 编译参数 go build 编译程序时可以通过 -ldflags 来指定编译参数。 go build -ldflags "-s -w" > -s 的作用是去掉符号信息。 -w 的作用是去掉调试信息。 可减少50%左右的大小 UPX 压缩 安装 UPX,并使用 最高级别的压缩 下载地址:https://github.com/upx/upx/releases 执行命令:upx -9
最近写BUG的时候遇到python计算很慢的情况,于是调研了一波在python中嵌入C++程序的方法,记录一下,便于查询。
最近同事遇到一个编译的问题,如果书写了错误的Log语句,会导致真个unreal build无限卡死: UE_LOG(LogTemp, Debug, TEXT("Something")); 这里这个Debug等级其实是不存在的,是一个书写错误,正常情况会报一个编译错误,但在我们的case中,会出现无限等待的情况。
shigen最近研究了一下一款渗透工具sqlMap。它一款流行的开源工具,用于自动化SQL注入攻击和渗透测试。它专门设计用于检测和利用Web应用程序中的SQL注入漏洞。SQLMap具有丰富的功能集,可自动检测和利用SQL注入漏洞,获取数据库的敏感信息,以及执行各种数据库操作,如提取、修改或删除数据。它支持多种数据库管理系统(DBMS),包括MySQL、Oracle、SQLite、Microsoft SQL Server等。也支持多种注入技术,包括基于错误的注入、联合查询注入、布尔盲注和时间盲注。通过使用这些技术,它可以自动化地发现和利用各种类型的SQL注入漏洞。
njs scripting language 是 nginx 官方推出的一个基于 JavaScript 的扩展,类似 ngx_lua (openresty) 模块,启用后可以通过 JS 脚本来扩展 nginx 功能。
最近在给开发同事折腾开发测试环境,其中就有 php 的编译安装。由于每个人的需求不一致,所以也接触到了各种模块编译和集成,中间不乏各种编译依赖报错。 正好,搜了几次都是下面 2 篇文章内容,干脆就转到
想要享受更轻松愉悦的编程,脚本语言是首选。想要更敏捷高效,c++则高山仰止。所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中。原来贡献过一篇《c++和js的混合编程》也是同样的目的。 得益于机器学习领域的发展,Python最近一直维持热度,但Python的速度,比node.js都差距不小,所以使用c++来提高一些速度更有必要。 编写Python的扩展模块已经有不少的不错的框架,但感觉上boost是最好用的一个。
今天把服务器的Nginx版本给升级到最新的稳定版本1.6.2了,Linux服务器操作系统为64 位的Ubuntu 12.04,写一下升级过程,首先下载Nginx,本次升级直接用ssh 远程升级的,所以所有操作都是在shell下面进行,所有操作都用命令,其实除了注视,真正需要的命令也就那么几个
我仔细的在C:\boost_1_64_0目录下搜索了一下,根本就没有libboost_regex-vc140-mt-sgd-1_64.lib这个库文件,那咋办,找教程编译呗 编译boost库工程的是一个叫bjam.exe的程序,但是从网上下载下来的boost_1_64_0.7z里是没有的,所以首先是运行boost根目录下的bootstrap.bat批处理文件,编译后的bjam.exe会自动拷贝到该目录下(bjam必须与boost-build.jam在同级目录)。
本文章主要是记录,cuda 编程过程中遇到的相关概念,名字解释和问题;主要是是用来备忘:
开发机配置如下:Linux内核是2.6,Centos版本为6.9,应该差异不大。
② 主要作用 : 主要作用是配置本工程中的 C/C++ 源码如何编译成动态库的 ;
最近有关于台湾大神爆出的PHP的GD库漏洞,该漏洞可通过上传构造后的GIF图片,可直接导致CPU资源耗尽,直至宕机。
Spring MVC和MyBatis作为当下最为流行的两个框架,大家平时开发中都在用。如果你往深了一步去思考,你应该会有这样的疑问:
gradle.properties 中配置编译参数 , 注意等号两边不要有空格 ;
在上篇文章中安装 Nginx 时,因为我的系统中没有 zlib 库,因此无法直接编译 Nginx,需要忽略这个库。这个库的作用是让 Nginx 可以开启 gzip 来让 http 支持压缩功能。为了能够让我们的 Nginx 正常支持 gzip,我们需要安装 zlib 库,并且将忽略的库编译进来。具体步骤如下:
PHP 8.2发布了,当然是第一时间上啦。项目用到了redis,但pecl官网上没提供对应的dll文件,只能自己编译了。
PHP 8.3 发布了,当然是第一时间上啦。项目用到了redis,但 pecl 官网上没提供对应的 dll 文件,只能自己编译了。
最近在公司写单元测试,发现了不少坑。例如:monkey不支持inline函数,vscode单测有缓存,convey对切片、map等比较不可以直接使用类似于==进行。本节呢,将来复盘一下我在实际过程中踩的一些坑,在此记录,防止下次再出问题,希望对大家有所帮助,欢迎留言与我一起交流。
写Makefile大概是每一个合格的C/C++程序员的基本功吧,几乎所有C语言写的开源项目都会用Makefile或者类似的Cmake来组织和编译,可见这个是有多重要。不过说白了,Makefile其实下面就简单记录下Makefile的常用模板,并且附带了自己总结的注意点方便以后查找使用。下面这两个模板是用来搞guisan的。
AzureRTOS 提供了针对不同处理器的接口文件,这些文件可以无需任何修改的情况下移植到目标系统。
Skia 是一个开源的 2D 图形库,提供路径、文本、图像和渲染等图形处理功能。它最初由 Skia Inc. 开发,后来被 Google 收购,并用在多个 Google 的产品中,包括 Chrome 浏览器和 Android 操作系统中。从事 Android 系统开发的同学应该对 Skia 不陌生,Skia 小巧高效,提供了一套丰富的API,支持多种 CPU 架构和 GPU 加速渲染,支持 Windows、Linux、Mac OS、Android 等操作系统,是跨平台图应用开发的理想选择,广泛应用于移动应用、游戏和专业图形设计工具中。
之前介绍了多种nginx调试工具,今天介绍nginx性能分析工具——gperftools
找到安装nginx的源码根目录,如果没有的话下载新的源码 http://nginx.org tar xvzf nginx-1.3.2.tar.gz 查看ngixn版本极其编译参数 /usr/local/nginx/sbin/nginx -V 进入nginx源码目录 cd nginx-1.3.2 以下是重新编译的代码和模块 ./configure --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --w
源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;} 要先用编译器处理一下,才能运行。 $ gcc test.c $ ./a.out Hello, world! 对于复杂的项目,编译过程还必须分成三步。 $ ./configure $ make $ make install 这些
领取专属 10元无门槛券
手把手带您无忧上云