apache / rocketmq-client-cpp

Apache RocketMQ cpp client
https://rocketmq.apache.org/
Apache License 2.0
360 stars 158 forks source link

能否release一个 支持mac m2 的 构建后的包 非常感谢 #459

Open DavideyLee opened 10 months ago

DavideyLee commented 10 months ago

能否release一个 支持mac m2 的 构建后的包 非常感谢
[rocketmq-client-cpp-2.2.0-bin-release-darwin.tar.gz]是amd86的

onetwo12cn commented 10 months ago

能否release一个 支持mac m2 的 构建后的包 非常感谢 [rocketmq-client-cpp-2.2.0-bin-release-darwin.tar.gz]是amd86的

lpflpf commented 10 months ago

应该是ARM 版本的, darwin 是intel 芯片的

ghostg00 commented 9 months ago

同求

lizhanhui commented 9 months ago

build.sh构建遇到什么问题了么?

Sligcm commented 8 months ago

build.sh构建遇到什么问题了么? MBP M2 Max,Docker 镜像:php:7.4.33-fpm-alpine3.16。 编译不下去。g++ 提示没有 -m64 选项。

123
Sligcm commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。

xiaohutushen30 commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。 大佬是怎么解决的 给个解决方向吧

Sligcm commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。 大佬是怎么解决的 给个解决方向吧

如果你是搞 PHP 的,下载 rocketmq-client-cpp-2.2.0 这个版本的,然后用 https://github.com/apache/rocketmq-client-cpp/pull/338 里提供的 CMakeList.txt 和 build.sh 替换下载的那个版本里对应的两个文件,然后再执行 build.sh 就可以了。

Sligcm commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。 大佬是怎么解决的 给个解决方向吧

其实是因为 arm 架构的 alpine 系统的 g++ 不支持 -mXX 这个参数,g++ 时不需要这个参数,忽略这个参数即可。 而源代码里没有判断 arm 架构,只判断了 amd64 架构的 32 位 和 64 位。因为 amd64 架构下的 g++ 需要这个参数,所以加上了 -mXX(-m32/-m64)。 pull requests 里的那个哥们已经提交了解决方案,而作者一直迟迟没有接受并合并到主分支,从而导致 arm 架构不被支持。

xiaohutushen30 commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。 大佬是怎么解决的 给个解决方向吧

其实是因为 arm 架构的 alpine 系统的 g++ 不支持 -mXX 这个参数,g++ 时不需要这个参数,忽略这个参数即可。 而源代码里没有判断 arm 架构,只判断了 intel 的 32 和 64 位。给强加上了 -mXX(-m32/-m64)。 pull requests 里的那个哥们已经提交了解决方案,而作者一直迟迟没有接受并合并到主分支,从而导致 arm 架构不被支持。

image 报错了 看不出来啥原因

xiaohutushen30 commented 8 months ago

已经编译出来.a文件 还差so文件了

ifplusor commented 8 months ago

@xiaohutushen30 编译boost的时候没带zlib支持吧

xiaohutushen30 commented 8 months ago

@xiaohutushen30 编译boost的时候没带zlib支持吧 怎么解决 还行大佬指教

Sligcm commented 8 months ago

回复太慢了,我已经自己解决了。忽略上面的问题吧。 大佬是怎么解决的 给个解决方向吧

其实是因为 arm 架构的 alpine 系统的 g++ 不支持 -mXX 这个参数,g++ 时不需要这个参数,忽略这个参数即可。 而源代码里没有判断 arm 架构,只判断了 intel 的 32 和 64 位。给强加上了 -mXX(-m32/-m64)。 pull requests 里的那个哥们已经提交了解决方案,而作者一直迟迟没有接受并合并到主分支,从而导致 arm 架构不被支持。

image 报错了 看不出来啥原因

别慌,兄弟,忘记说了, boost 的包如果你没提前下载好的话,脚本会自动下载 https://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.gz 的镜像版本,而这个版本的下载链接因为镜像服务器的关系,在国内可能会被就近指定到香港节点,而香港节点的这个包,没有打包子仓库的代码,所以 tools 里的工具都用不了,你去 boost 官方的仓库里下载 boost_1_58_0.tar.gz 这个包,大概是 83.6M,然后放在和 build.sh 同级目录,执行脚本的时候,它会自动挪到 tmp_down_dir 里。这样再执行就好了,其他包不用提前下载了,都是没问题的。

Sligcm commented 8 months ago

@xiaohutushen30 编译boost的时候没带zlib支持吧 怎么解决 还行大佬指教

对了,编译有缓存,为了避免出现不必要的麻烦,你最好是直接都重新操作一遍。

xiaohutushen30 commented 8 months ago

@xiaohutushen30 编译boost的时候没带zlib支持吧 怎么解决 还行大佬指教

对了,编译有缓存,为了避免出现不必要的麻烦,你最好是直接都重新操作一遍。

多谢 按照你的方法解决了

Sligcm commented 8 months ago

@xiaohutushen30 编译boost的时候没带zlib支持吧 怎么解决 还行大佬指教

对了,编译有缓存,为了避免出现不必要的麻烦,你最好是直接都重新操作一遍。

多谢 按照你的方法解决了

客气~

ridy-0204 commented 5 months ago

大佬,我是m1芯片,1.58安装不上, image 1.69的 image 1.72的 image 1.84的可以编译通过,但是确实endian.hpp,这应该怎么解决呢