![在 manjaro 上构建 seafile-client 包时出现“未定义的引用”错误](https://linux22.com/image/227766/%E5%9C%A8%20manjaro%20%E4%B8%8A%E6%9E%84%E5%BB%BA%20seafile-client%20%E5%8C%85%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E5%BC%95%E7%94%A8%E2%80%9D%E9%94%99%E8%AF%AF.png)
我在 Manjaro 上的 Seafile 客户端停止工作了。因此,我将其删除并尝试重新安装。然而,当我尝试从 AUR 构建 seafile-client 时,安装总是中止。安装似乎很顺利,直到最后达到 100%。然后我收到以下消息:
[ 99%] Building CXX object CMakeFiles/seafile-applet.dir/src/shib/moc_shib-helper.cpp.o
[100%] Building CXX object CMakeFiles/seafile-applet.dir/qrc_seafile-client.cpp.o
[100%] Building CXX object CMakeFiles/seafile-applet.dir/qrc_QtAwesome.cpp.o
[100%] Linking CXX executable seafile-applet
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::~SeafileRpcClient()':
rpc-client.cpp:(.text+0x61): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)'
/usr/bin/ld: rpc-client.cpp:(.text+0x78): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setAutoSync(bool)':
rpc-client.cpp:(.text+0x10b): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: rpc-client.cpp:(.text+0x14b): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRateLimit(SeafileRpcClient::Direction, int)':
rpc-client.cpp:(.text+0x1af): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCloneTasksCount(int*)':
rpc-client.cpp:(.text+0x266): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getDownloadRate(int*)':
rpc-client.cpp:(.text+0x316): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getUploadRate(int*)':
rpc-client.cpp:(.text+0x396): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncNotification(json_t**)':
rpc-client.cpp:(.text+0x469): undefined reference to `searpc_client_call__json(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::deleteFileAsyncErrorById(int)':
rpc-client.cpp:(.text+0x4ef): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileGetConfigInt(QString const&, int*)':
rpc-client.cpp:(.text+0x5c5): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileSetConfig(QString const&, QString const&)':
rpc-client.cpp:(.text+0x73d): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileSetConfigInt(QString const&, int)':
rpc-client.cpp:(.text+0x94b): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRepoAutoSync(QString const&, bool)':
rpc-client.cpp:(.text+0xa91): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o:rpc-client.cpp:(.text+0xbaf): more undefined references to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' follow
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::markFileLockState(QString const&, QString const&, bool)':
rpc-client.cpp:(.text+0x1319): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setServerProperty(QString const&, QString const&, QString const&)':
rpc-client.cpp:(.text+0x1556): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::addDelConfirmation(QString const&, bool)':
rpc-client.cpp:(.text+0x185c): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::downloadRepo(QString const&, int, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, int, QString const&, QString*)':
rpc-client.cpp:(.text+0x1cf6): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::cloneRepo(QString const&, int, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, int, QString const&, QString*)':
rpc-client.cpp:(.text+0x25a6): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getTransferDetail(CloneTask*)':
rpc-client.cpp:(.text+0x2ae5): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoTransferInfo(QString const&, int*, int*, QString*)':
rpc-client.cpp:(.text+0x2e3e): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoFileStatus(QString const&, QString const&, bool, QString*)':
rpc-client.cpp:(.text+0x3102): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileGetConfig(QString const&, QString*)':
rpc-client.cpp:(.text+0x3305): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::cancelCloneTask(QString const&, QString*)':
rpc-client.cpp:(.text+0x34b5): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::removeCloneTask(QString const&, QString*)':
rpc-client.cpp:(.text+0x36b5): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::checkPathForClone(QString const&, QString*)':
rpc-client.cpp:(.text+0x38b5): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoProperty(QString const&, QString const&, QString*)':
rpc-client.cpp:(.text+0x3aab): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::generateMagicAndRandomKey(int, QString const&, QString const&, QString*, QString*, QString*)':
rpc-client.cpp:(.text+0x3d5f): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCommitDiff(QString const&, QString const&, QString const&, CommitDetails*)':
rpc-client.cpp:(.text+0x4274): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `(anonymous namespace)::createSearpcClientWithPipeTransport(char const*)':
rpc-client.cpp:(.text+0x4bbd): undefined reference to `searpc_create_named_pipe_client(char const*)'
/usr/bin/ld: rpc-client.cpp:(.text+0x4c1e): undefined reference to `searpc_named_pipe_client_connect(_SearpcNamedPipeClient*)'
/usr/bin/ld: rpc-client.cpp:(.text+0x4c2c): undefined reference to `searpc_client_with_named_pipe_transport(_SearpcNamedPipeClient*, char const*)'
/usr/bin/ld: rpc-client.cpp:(.text+0x4c54): undefined reference to `searpc_create_named_pipe_client(char const*)'
/usr/bin/ld: rpc-client.cpp:(.text+0x4c65): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::connectDaemon(bool)':
rpc-client.cpp:(.text+0x4d3b): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncStatus(LocalRepo&)':
rpc-client.cpp:(.text+0x4ea5): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getLocalRepo(QString const&, LocalRepo*)':
rpc-client.cpp:(.text+0x534e): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::unsyncReposByAccount(QUrl const&, QString const&, QString*)':
rpc-client.cpp:(.text+0x5f24): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::updateReposServerHost(QUrl const&, QString const&, QString*)':
rpc-client.cpp:(.text+0x62af): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::removeSyncTokensByAccount(QUrl const&, QString const&, QString*)':
rpc-client.cpp:(.text+0x6624): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCloneTasks(std::vector<CloneTask, std::allocator<CloneTask> >*)':
rpc-client.cpp:(.text+0x68d7): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncErrors(std::vector<SyncError, std::allocator<SyncError> >*, int, int)':
rpc-client.cpp:(.text+0x6c7b): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_string__void(void*, json_t*, unsigned long*)':
rpc-server.cpp:(.text+0x83): undefined reference to `searpc_set_string_to_ret_object(json_t*, char*)'
/usr/bin/ld: rpc-server.cpp:(.text+0x93): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_int__void(void*, json_t*, unsigned long*)':
rpc-server.cpp:(.text+0x102): undefined reference to `searpc_set_int_to_ret_object(json_t*, long long)'
/usr/bin/ld: rpc-server.cpp:(.text+0x112): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `register_marshals()':
rpc-server.cpp:(.text+0x161): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0x171): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsigned long*))'
/usr/bin/ld: rpc-server.cpp:(.text+0x184): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0x194): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsigned long*))'
/usr/bin/ld: rpc-server.cpp:(.text+0x1a1): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0x1b7): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsigned long*))'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendExitCommand()':
rpc-server.cpp:(.text+0x1f2): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendActivateCommand()':
rpc-server.cpp:(.text+0x262): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_int__string(void*, json_t*, unsigned long*)':
rpc-server.cpp:(.text+0x301): undefined reference to `searpc_set_int_to_ret_object(json_t*, long long)'
/usr/bin/ld: rpc-server.cpp:(.text+0x311): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendPingCommand(QString*)':
rpc-server.cpp:(.text+0x37a): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendOpenSeafileUrlCommand(QUrl const&)':
rpc-server.cpp:(.text+0x632): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `SeafileAppletRpcServer::SeafileAppletRpcServer()':
rpc-server.cpp:(.text+0x82a): undefined reference to `searpc_create_named_pipe_server(char const*)'
/usr/bin/ld: rpc-server.cpp:(.text+0x938): undefined reference to `searpc_create_named_pipe_server(char const*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `SeafileAppletRpcServer::start()':
rpc-server.cpp:(.text+0xa6f): undefined reference to `searpc_server_init(void (*)())'
/usr/bin/ld: rpc-server.cpp:(.text+0xa78): undefined reference to `searpc_create_service(char const*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xa85): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0xa9f): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xaac): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0xac6): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xad3): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0xaed): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xb07): undefined reference to `searpc_compute_signature(char const*, int, ...)'
/usr/bin/ld: rpc-server.cpp:(.text+0xb24): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xb5c): undefined reference to `searpc_named_pipe_server_start(_SearpcNamedPipeServer*)'
/usr/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::connect()':
rpc-server.cpp:(.text+0xc01): undefined reference to `searpc_create_named_pipe_client(char const*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xc68): undefined reference to `searpc_named_pipe_client_connect(_SearpcNamedPipeClient*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xc7b): undefined reference to `searpc_client_with_named_pipe_transport(_SearpcNamedPipeClient*, char const*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xcb4): undefined reference to `searpc_create_named_pipe_client(char const*)'
/usr/bin/ld: rpc-server.cpp:(.text+0xcc5): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/seafile-applet.dir/build.make:4030: seafile-applet] Error 1
make[1]: *** [CMakeFiles/Makefile2:979: CMakeFiles/seafile-applet.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
我尝试通过 pamac 构建它,是的,从头开始,但到目前为止没有任何效果。有谁知道实际问题可能是什么以及我该如何解决它?