gpt4 book ai didi

c - globus 工具包中的驱动程序

转载 作者:行者123 更新时间:2023-11-30 17:34:14 25 4
gpt4 key购买 nike

我一直在尝试运行 globus 工具包网站中给出的示例驱动程序。这是程序:

#include "globus_xio.h"

int main(int argc,char *argv[])
{
globus_result_t res;
char * driver_name;
globus_xio_driver_t driver;
globus_xio_stack_t stack;
globus_xio_handle_t handle;
globus_size_t nbytes;
char * contact_string = NULL;
char buf[256];

contact_string = argv[1];
driver_name = argv[2];

globus_module_activate(GLOBUS_XIO_MODULE);
res = globus_xio_driver_load(driver_name,&driver);
assert(res == GLOBUS_SUCCESS);

res = globus_xio_stack_init(&stack, NULL);
assert(res == GLOBUS_SUCCESS);
res = globus_xio_stack_push_driver(stack, driver);
assert(res == GLOBUS_SUCCESS);

res = globus_xio_handle_create(&handle, stack);
assert(res == GLOBUS_SUCCESS);

res = globus_xio_open(handle, contact_string, NULL);
assert(res == GLOBUS_SUCCESS);

do
{
res = globus_xio_read(handle, buf, sizeof(buf) - 1, 1, &nbytes, NULL);
if(nbytes > 0)
{
buf[nbytes] = '\0';
fprintf(stderr, "%s", buf);
}
} while(res == GLOBUS_SUCCESS);

globus_xio_close(handle, NULL);

globus_module_deactivate(GLOBUS_XIO_MODULE);

return 0;
}

当我使用命令编译它时
cc -I/usr/include/globus globus_xio_example.c
我收到以下错误

/tmp/ccLMLlIi.o: In function `main':globus_xio_example.c:(.text+0x57): undefined reference to `globus_i_xio_module'globus_xio_example.c:(.text+0x5c): undefined reference to `globus_module_activate'globus_xio_example.c:(.text+0x75): undefined reference to `globus_xio_driver_load'globus_xio_example.c:(.text+0xb1): undefined reference to `globus_xio_stack_init'globus_xio_example.c:(.text+0xf2): undefined reference to `globus_xio_stack_push_driver'globus_xio_example.c:(.text+0x133): undefined reference to `globus_xio_handle_create'globus_xio_example.c:(.text+0x179): undefined reference to `globus_xio_open'globus_xio_example.c:(.text+0x1d1): undefined reference to `globus_xio_read'globus_xio_example.c:(.text+0x22b): undefined reference to `globus_xio_close'globus_xio_example.c:(.text+0x230): undefined reference to `globus_i_xio_module'globus_xio_example.c:(.text+0x235): undefined reference to `globus_module_deactivate'collect2: ld returned 1 exit status

最佳答案

看来用于编译的命令不够:

cc -I /usr/include/globus globus_xio_example.c

具体来说,链接器进程指示存在许多无法解析的符号。我怀疑用于编译的命令缺少关于需要链接哪个库来解析 undefined symbol 的指令。

<小时/>

提示:
使用“globus-makefile-header”帮助确定库依赖性。

% globus-makefile-header -flavor=gcc32dbg globus_xio > header

检查“ header ”的内容以获取适当的 makefile 宏。
在 makefile 中包含 header 并使用所需的 makefile 宏。

关于c - globus 工具包中的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com