当前位置: 首页 > news >正文

python做网站原理wordpress改地址错误

python做网站原理,wordpress改地址错误,网站建设前台后台设计,急切网在线制作前言 接Android Studio引入ndk编译的so库的故事#xff0c;这个东西搞了两周以后#xff0c;由于自己不熟悉Java和安卓开发#xff0c;踩了不少坑#xff0c;其中一周时间都是花在怎么用Android Studio上的。。。AS下的新版本Koala#xff0c;结果网上资料全是旧版本这个东西搞了两周以后由于自己不熟悉Java和安卓开发踩了不少坑其中一周时间都是花在怎么用Android Studio上的。。。AS下的新版本Koala结果网上资料全是旧版本很多设置完全不同遇了问题经常不知所措后面不得已换成了老一点的2021 dolphin版本也学会了看安卓官网资料逐渐才稳定下来。 好在不是紧急项目后面赶主要任务进度就改成每周抽一天时间去处理这个任务最核心的在于如何将cairo库移植到安卓环境去使用这是一个2D绘图库awtk的画布后端也有cairo的选择几周摸爬滚打终于将cairo移植到了安卓上特此记录下算是个人进军安卓开发的一小步。 环境 OSWindows11 Cairo: 1.18.0 Android Studio: Dolphin 2021.3.1.17 NDK: r26 确保上述环境和工具已经下好NDK用windows或者linux的都行不过经个人测试linux相比windows巨慢linux下编译系统的log输出一条时间都够windows下输出十几条了我没用虚拟机桌面系统用的WSL兴许是WSL本身的性能问题 Stage1 下载CairoMeson编译 cairo下载地址https://www.cairographics.org/download/ 从1.17.8开始cairo不再使用传统的configuremakefile构建系统了而是改用一个新的构建系统meson它的编译语法很像python但并不像awtk的scons那样是完全基于python, 算是类python语言。 不得不接触新的编译系统多少有些抵触不过手册和案例看下来逐渐感觉这个系统香了因为cairo库有很多依赖比如pixman, glib, freetype等meson项目上有wrap脚本在编译的时候发现依赖缺失可以直接从网上下下来特定版本。 要是旧版本的话不只要自己一个个下依赖去配置还要考虑依赖树内各个节点的版本兼容的问题苦不堪言这个自动下载的功能实在厉害 对于交叉编译meson可以通过编写txt文件指定特定平台的编译我这里目标是armv7平台给arm的平板使用。 其实还想试试x86平台的因为AS上arm架构机型没法模拟无法启动查了下是电脑架构x86不好模拟arm的原因 之前自己试过编译结果遇到的坑根本无法解决然后看了点科普才知道手机x86架构算是古早的被市场淘汰的产品除了模拟器现在手机平板都是arm架构看来是没有市场价值那估计官方也没有考虑这平台释怀了。。。。只能找arm架构的实机了好在公司提供了个IDO-EVB3562开发板用来装安卓映像。 不废话交叉编译设置cross_file_build_win_host_arm.txt如下 [constants] android_ndkD:\Devtools\android-ndk-r26d-win\toolchains\llvm\prebuilt\windows-x86_64\ android_ndk_toolchainD:\Devtools\android-ndk-r26d-win\toolchains\llvm\prebuilt\windows-x86_64\bin[binaries] c android_ndk_toolchain / armv7a-linux-androideabi33-clang.cmd cpp android_ndk_toolchain / armv7a-linux-androideabi33-clang.cmd ar android_ndk_toolchain / llvm-ar.exe ld android_ndk_toolchain / ld.exe strip android_ndk_toolchain / llvm-strip.exe[properties] sys_root android_ndk / sysroot c_link_args [-fuse-ldgold] cpp_link_args [-fuse-ldgold][host_machine] system android cpu_family arm cpu armv7a endian little 如果linux平台上则是 [constants] android_ndk/mnt/d/Devtools/android-ndk-r26d-linux/toolchains/llvm/prebuilt/linux-x86_64/ android_ndk_toolchain/mnt/d/Devtools/android-ndk-r26d-linux/toolchains/llvm/prebuilt/linux-x86_64/bin[binaries] c android_ndk_toolchain / armv7a-linux-androideabi33-clang cpp android_ndk_toolchain / armv7a-linux-androideabi33-clang ar android_ndk_toolchain / llvm-ar ld android_ndk_toolchain / ld strip android_ndk_toolchain / llvm-strip[properties] sys_root android_ndk / sysroot c_link_args [-fuse-ldgold] cpp_link_args [-fuse-ldgold][host_machine] system android cpu_family arm cpu armv7a endian little 注意windows版我指定了后缀名因为meson实际上是脚本根据路径的文件名执行对应文件给脚本提供的实际是文件路径。 以下指令启动meson的编译--cross-file用于指定交叉编译文件 meson setup --cross-file cross_file_build_win_host_arm.txt build_win_host_arm等待一段时间让meson把一切配置好最后meson会弹出项目的各项配置总结 cairo 1.18.0Surface BackendsImage : YESRecording : YESObserver : YESMime : YESTee : YESXlib : NOXlib Xrender : NOQuartz : NOQuartz-image : NOXCB : NOWin32 : NOCairoScript : YESPostScript : YESPDF : YESSVG : YESFont BackendsUser : YESFreeType : YESFontconfig : YESWin32 : NOWin32 DWrite : NOQuartz : NOFunctionsPNG functions : YESX11-xcb : NOXCB-shm : NOFeatures and Utilitiescairo-trace: : NOcairo-script-interpreter: YESAPI reference : NOSubprojectsfontconfig : YESfreetype2 : YES (from fontconfig)glib : NO Dependency iconv not found, tried builtin and systemgperf : YES (from fontconfig)libintl : NO Include dir /usr/local/include does not exist.libpng : YESlibxml2 : YES (from fontconfig)pixman : YESUser defined optionsCross files : cross_file_build_win_host_arm.txt Found ninja-1.12.1 at D:\Devtools\Meson\ninja.EXE接下来就加入meson的第二阶段ninja编译 ninja -C build_win_host_arm到了这一步开始编译就开始不风顺了中间一定会遇到某些问题比如头文件缺失或者源码的哪些不规范用法在gcc上过得去到了ndk的clang就撞error或者丢了哪些库不过只要不是系统性问题基本都能解决。我这里先不讲问题放在最后的踩坑上记录。 Stage2 Cairo安卓项目 ninja编译完成后应该会有以下so库这些库都要放到后面安卓项目的libs文件夹上缺一不可。 除了libcpufeatures.so是在ndk内部其他库应该都能在build_win_host_arm内找到。 libcairo.so libcpufeatures.so libfontconfig.so libfreetype.so libglib-2.0.so libintl.so libpcre2-8.so libpixman-1.so libpng16.so libxml2.soAndroid Studio新建NativeC项目, 后面就是各种配置了, 然而自己不懂安卓开发在编码实现上还是一头雾水结果网上一查其实已经有人把cairo的移植做出来了把源码适配了下居然能用。Nice, 那不担心了。 省篇幅我就直接发源码吧https://gitee.com/tracker647/cairo-for-android 记录一些注意点 1.CMake版本务必换成更新的3.22.1否则不识别编译选项一些库明明加了硬说没有。 2.adbFilter选项由于这里用的armv7a,则只指定armv7a就行了。 根据1 2修改后的build.gradle的android部分例 android {namespace com.example.cairotestcompileSdk 32defaultConfig {applicationId com.example.cairotestminSdk 24targetSdk 32versionCode 1versionName 1.0testInstrumentationRunner androidx.test.runner.AndroidJUnitRunnerndk {abiFilters armeabi-v7a}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}externalNativeBuild {cmake {path file(src/main/cpp/CMakeLists.txt)version 3.22.1}}buildFeatures {viewBinding true} }3.cairo官方提供了一些编码案例我用的其中一个画星星的例子画的时候注意看有没有cairo_scale这个函数这是用来控制整个坐标系放缩的比如设置了cario_scale(width, height), 后面各种api传坐标就不用加width和height了直接传百分比就行用的移植例子一开始没注意画出来结果一脸懵逼。 最终效果图桌面是cairo在ubuntu wsl平台的运行结果平板(IDO-EVB3562开发板连了个电容屏)是安卓平台运行结果。 ninja踩坑 tips:-v打开指令log ninja -C $builddir -v**…\subprojects\fontconfig\src/fcint.h:32:10: fatal error: ‘fcstdint.h’ file not found** 一个简单的封装stdint.h的头文件缺失补全即可我是拿的其他平台的build文件夹去补的就奇怪我在其他平台上这个文件生成的好好的为什么到了这里就没了 **…/subprojects/pixman/pixman/pixman-arm.c:99:10: fatal error: ‘cpu-features.h’ file not found** 这个文件依赖于ndk的cpufeatures库正好ndk的cpufeatures文件夹提供了mk文件直接编译即可不过生成的是静态库我这里图后期用的库格式一致改成动态库了。 cd到这个文件夹然后ndk-build: PS D:\Devtools\android-ndk-r26d-win\sources\android\cpufeatures ndk-build NDK_PROJECT_PATH. APP_BUILD_SCRIPT./Android.mk接着就会生成libs和objs文件夹libs和objs文件夹下有目标库现在切回到cairo项目build_linux_host_arm文件夹下有个build.ninja是ninja执行时用的脚本CV报错指令找到对应command, 把cpu_features头文件加入 build subprojects/pixman/pixman/libpixman-1.so.p/pixman-arm.c.o: c_COMPILER …/subprojects/pixman/pixman/pixman-arm.c DEPFILE “subprojects\pixman\pixman\libpixman-1.so.p\pixman-arm.c.o.d” DEPFILE_UNQUOTED subprojects\pixman\pixman\libpixman-1.so.p\pixman-arm.c.o.d ARGS “-Isubprojects\pixman\pixman\libpixman-1.so.p” “-Isubprojects\pixman\pixman” “-I…\subprojects\pixman\pixman” “-ID:\Devtools\android-ndk-r26d-win\sources\android\cpufeatures” “-fdiagnostics-coloralways” “-D_FILE_OFFSET_BITS64” “-Wall” “-Winvalid-pch” “-Wextra” “-stdgnu99” “-O0” “-g” “-Wdeclaration-after-statement” “-fno-strict-aliasing” “-fvisibilityhidden” “-Wundef” “-ftrapping-math” “-Wno-unused-local-typedefs” “-DHAVE_CONFIG_H” “-fPIC” “-pthread” 头文件的错误就过去了接下来链接指令由于未加入cpufeatures库必定报错 **…/subprojects/pixman/pixman/pixman-arm.c:108: error: undefined reference to ‘android_getCpuFamily’** …/subprojects/pixman/pixman/pixman-arm.c:109: error: undefined reference to ‘android_getCpuFeatures’ build.ninja找到对应链接指令,指定库路径, libs和objs都可以注意架构这个例子是armv7a build subprojects/pixman/pixman/libpixman-1.so: c_LINKER_RSP subprojects/pixman/pixman/libpixman-1.so.p/pixman.c.o subprojects/pixman/pixman/libpixman-1.so.p/pixman-access.c.o 。。。 subprojects/pixman/pixman/libpixman-arm-neon.a subprojects/pixman/pixman/libpixman-arm-simd.a LINK_ARGS “D:\Devtools\android-ndk-r26d-win\sources\android\cpufeatures\libs\armeabi-v7a\cpufeatures.so” “-Wl,–as-needed” “-Wl,–no-undefined” “-shared” “-fPIC” “-Wl,-soname,libpixman-1.so” “-fuse-ldgold” “-Wl,–start-group” “subprojects/pixman/pixman/libpixman-arm-simd.a” “subprojects/pixman/pixman/libpixman-arm-neon.a” “-lm” “-Wl,–end-group” “-pthread” **— stderr —** Traceback (most recent call last): File “D:\MyCodeBase\KChartSimulate\cairo-1.18.0\build_win_host_arm\subprojects\glib-2.74.0\gobject\glib-mkenums”, line 486, in write_output(prod) File “D:\MyCodeBase\KChartSimulate\cairo-1.18.0\build_win_host_arm\subprojects\glib-2.74.0\gobject\glib-mkenums”, line 97, in write_output print(output, fileoutput_stream) UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa9’ in position 17: illegal multibyte sequence windows系统下特供错误版权符号©没有gbk编码而windows终端就是gdb编码输出中文的这个卡住过一段时间试过输入chcp 65001也没用网上没合理答案找glib的gitlab提issue也没人理最后还是问ai找到了解决方法把这个符号直接替换掉 def write_output(output):global output_streamoutput output.replace(\xa9, )print(output, fileoutput_stream)**…/subprojects/glib-2.74.0/gio/gsocket.c:497:37: error: passing ‘guint *’ (aka ‘unsigned int *’) to parameter of type socklen_t ’ (aka int ) converts between pointers to integer types with different sign [-Werror,-Wpointer-sign] 修改build.ninja把-Wpointer-sign去除掉, 或者直接修改源码加入强转不过十几条error,不值得。 build subprojects/glib-2.74.0/gio/libgio-2.0.so.p/gsocket.c.o: c_COMPILER …/subprojects/glib-2.74.0/gio/gsocket.c || subprojects/glib-2.74.0/gio/gdbus-daemon-generated.h subprojects/glib-2.74.0/gio/gioenumtypes.h subprojects/glib-2.74.0/gio/xdp-dbus.h subprojects/glib-2.74.0/gobject/glib-enumtypes.h DEPFILE “subprojects\glib-2.74.0\gio\libgio-2.0.so.p\gsocket.c.o.d” DEPFILE_UNQUOTED subprojects\glib-2.74.0\gio\libgio-2.0.so.p\gsocket.c.o.d ARGS “-Isubprojects\glib-2.74.0\gio\libgio-2.0.so.p” “-Isubprojects\glib-2.74.0\gio” “-I…\subprojects\glib-2.74.0\gio” “-Isubprojects\glib-2.74.0” “-I…\subprojects\glib-2.74.0” “-Isubprojects\glib-2.74.0\glib” “-I…\subprojects\glib-2.74.0\glib” “-Isubprojects\proxy-libintl” “-I…\subprojects\proxy-libintl” “-Isubprojects\glib-2.74.0\gobject” “-I…\subprojects\glib-2.74.0\gobject” “-Isubprojects\glib-2.74.0\gmodule” “-I…\subprojects\glib-2.74.0\gmodule” “-Isubprojects\glib-2.74.0\subprojects\gvdb” “-I…\subprojects\glib-2.74.0\subprojects\gvdb” “-fdiagnostics-coloralways” “-D_FILE_OFFSET_BITS64” “-Wall” “-Winvalid-pch” “-Wextra” “-Wpedantic” “-stdgnu99” “-O0” “-g” “-D_GNU_SOURCE” “-fno-strict-aliasing” “-DG_ENABLE_DEBUG” “-Wimplicit-fallthrough” “-Wmisleading-indentation” “-Wunused” “-Wno-unused-parameter” “-Wno-cast-function-type” “-Wno-pedantic” “-Wno-format-zero-length” “-Wno-variadic-macros” “-Werrorformat2” “-Werrorinit-self” “-Werrormissing-include-dirs” “-Werrorpointer-arith” “-Werrorunused-result” “-Wstrict-prototypes” “-Wno-bad-function-cast” “-Werrordeclaration-after-statement” “-Werrorimplicit-function-declaration” “-Werrormissing-prototypes” “-Werrorpointer-sign” “-fPIC” “-DG_LOG_DOMAIN“GLib-GIO”” “-DGIO_COMPILATION” “-DGIO_LAUNCH_DESKTOP“c:/libexec/gio-launch-desktop”” “-DGIO_MODULE_DIR“c:/lib/gio/modules”” “-DLOCALSTATEDIR“c:/var”” “-fvisibilityhidden”
http://www.dnsts.com.cn/news/48665.html

相关文章:

  • 怎么做网站点击率监控工具网站推广托管
  • 农药放行单在哪个网站做wordpress搭建电商教程
  • dede如何手机网站和电脑网站的数据同步更新做网站需要知道哪些事情
  • 在建立网站站点的过程中深圳代理记账多少钱一月
  • 查询公司信息去哪里查aso优化什么意思
  • 网站备案一天通过html新闻列表
  • 网站 前台 后台h5响应式网站
  • 同安建设局网站网站建设及网站推广
  • 网站中flash专业做包包的网站
  • 网站域名需要续费的吗身边的网络营销案例
  • 淘宝联盟合作网站api网站建设的实验原理
  • 手机怎样使用域名访问网站wordpress标题title优化代码
  • 专业排名优化网站wordpress后台加载速度慢
  • 自己做网站要会什么软件前端vue低代码开发平台
  • 个人网站介绍模板下载网站建设注意的问题
  • 莉莉卡是哪个网站做的泉州免费网站制作
  • 公司画册设计网站网建公司浅谈网站建设的目的和意义
  • 企业招聘网站模板宁夏建设工程交易中心网站
  • 分类信息系统网站模板线上销售的方法和技巧
  • 湖南火电建设有限公司网站下载应用市场软件
  • 菜单微网站网站建设费用大概多少钱
  • 如何将网站内容做chm软件应用商店下载免费
  • 做移动网站设计网络综合设计实验报告
  • 国外的调查网站上做问卷做ppt医学专业图片网站
  • 山东平台网站建设制作网站规划主要内容
  • 网站建设制作公司 首推万维科技山西营销型网站建设
  • 装修公司网站模板wordpress修改中文字体
  • 网站开发设计实训总结连锁店进销存软件
  • 学习网站建设与管理网站站长
  • 学院 网站 两学一做建设银行官方网站是什么