cloudwu / pbc

A protocol buffers library for C
MIT License
1.62k stars 567 forks source link

skyent 加了一个protobuf 第一次运行报错了。 风哥看看这是啥原因啊 #141

Closed GameKong closed 4 years ago

GameKong commented 4 years ago

kongling@konglingdeMacBook-Pro skynet % ./skynet ./examples/config [:01000002] LAUNCH snlua bootstrap [:01000003] LAUNCH snlua launcher [:01000004] LAUNCH snlua cmaster [:01000004] master listen socket 0.0.0.0:2013 [:01000005] LAUNCH snlua cslave [:01000005] slave connect to master 127.0.0.1:2013 [:01000004] connect from 127.0.0.1:55198 4 [:01000006] LAUNCH harbor 1 16777221 [:01000004] Harbor 1 (fd=4) report 127.0.0.1:2526 [:01000005] Waiting for 0 harbors [:01000005] Shakehand ready [:01000007] LAUNCH snlua datacenterd [:01000008] LAUNCH snlua service_mgr [:01000009] LAUNCH snlua testproto [:01000009] lua loader error : error loading module 'protobuf.c' from file './luaclib/protobuf.so': dlopen(./luaclib/protobuf.so, 6): Symbol not found: _lua_newuserdatauv Referenced from: ./luaclib/protobuf.so Expected in: flat namespace in ./luaclib/protobuf.so stack traceback: [C]: in ? [C]: in function 'require' ./lualib/protobuf.lua:1: in main chunk [C]: in function 'require' ./test/testproto.lua:2: in local 'main' ./lualib/loader.lua:48: in main chunk [:01000009] KILL self [:01000002] KILL self

GameKong commented 4 years ago

_lua_newuserdatauv 找不到是什么, 我是按教程一步一步弄的。 Mac OS下

cloudwu commented 4 years ago

See https://github.com/cloudwu/skynet/issues/1249

cloudwu commented 3 years ago

报告 newuserdatauv 找不到说明你已经 include 了 lua 5.4 的 .h ,但是运行时找不到这个符号。

这个符号是在 skynet 主程序中,请确保它正确编译链接。

不要让 so 重复链接 lua 的符号。

cloudwu commented 3 years ago

mac 有自己的动态库生成方式,需要生成 dylib

GameKong commented 3 years ago

谢谢风哥,我解决了。。 重装了skynet就好了。。 可能是我之前make skynet的时候环境不对? 暂时还不清楚。。。