c++ - 从可执行文件创建二进制文件
问题描述
我需要一些基本的了解,
我在这个文件夹中有 4 个文件
生成文件,libfoo_8_3.so,libfoo_9_3.so,test.c
我编译 test.c 以制作目标文件 test.o 和 .d 文件。这编译得很好
这两个动态库(libfoo_8_3.so libfoo_9_3.so)由我想要使其可执行的c 程序使用。
我正在使用 Makefile,因为我需要来自不同文件夹中的 c 文件的标题和结构。
当我做类似的事情时,我想制作一个可执行的二进制文件
gcc -fno-builtin-log -fno-omit-frame-pointer -msse2 -DMEMS_DEBUG -DMEMS_DISABLED -D__HMAP_64BIT_COMPLIANT_ID_LENGTH__ -DNETOID_LINUX -D_REENTRANT -DXML_BYTE_ORDER=12 -DNX_BYTE_ORDER=12 -DTHIRTY_TWO_BIT -DALLOW_ISERVER_H323 -D_POSIX_PTHREAD_SEMANTICS -DMEMS_DEBUG -ggdb -L/usr/local/lib -L/usr/lib64 -L/SBC/lib/x86_64 -L/SBC/pkgs_x86_64/def/lib -L/SBC/bin/x86_64 -I(Include many folders)
-o test test.o
This gives me following error ->
est.o: In function `main':
/SBC/ser/test.c:33: undefined reference to `dlopen'
/SBC/ser/test.c:35: undefined reference to `dlopen'
/SBC/ser/test.c:50: undefined reference to `dlsym'
/SBC/ser/test.c:52: undefined reference to `dlsym'
/SBC/ser/test.c:68: undefined reference to `tracer_tag_key'
/SBC/ser/test.c:68: undefined reference to `pthread_getspecific'
/SBC/ser/test.c:68: undefined reference to `netLogStruct'
/SBC/ser/test.c:68: undefined reference to `NetLogModuleFacilities'
/SBC/ser/test.c:68: undefined reference to `NetLogModuleNames'
/SBC/ser/test.c:68: undefined reference to `NetSyslogSprintf'
/SBC/ser/test.c:68: undefined reference to `netLogStruct'
/SBC/ser/test.c:68: undefined reference to `NetLogModuleNames'
/SBC/ser/test.c:74: undefined reference to `tracer_tag_key'
/SBC/ser/test.c:74: undefined reference to `pthread_getspecific'
/SBC/ser/test.c:74: undefined reference to `netLogStruct'
/SBC/ser/test.c:74: undefined reference to `NetLogModuleFacilities'
/SBC/ser/test.c:74: undefined reference to `NetLogModuleNames'
/SBC/ser/test.c:74: undefined reference to `NetSyslogSprintf'
/SBC/ser/test.c:74: undefined reference to `netLogStruct'
/SBC/ser/test.c:74: undefined reference to `NetLogModuleNames'
/SBC/ser/test.c:82: undefined reference to `tracer_tag_key'
/SBC/ser/test.c:82: undefined reference to `pthread_getspecific'
/SBC/ser/test.c:82: undefined reference to `netLogStruct'
/SBC/ser/test.c:82: undefined reference to `NetLogModuleFacilities'
/SBC/ser/test.c:82: undefined reference to `NetLogModuleNames'
/SBC/ser/test.c:82: undefined reference to `NetSyslogSprintf'
/SBC/ser/test.c:82: undefined reference to `netLogStruct'
/SBC/ser/test.c:82: undefined reference to `NetLogModuleNames'
我需要对此有一个正确的理解,或者我该如何解决这个问题?
解决方案
推荐阅读
- firebird - 如何更改/创建 firebird 3.0 嵌入式的 sysdba 密码
- php - 在 Web 应用程序中运行种子
- css - 更改 wordpress 小部件的顺序
- python - 为什么全局列表变量在函数内部的全局范围内更新而不使用全局行?
- php - 如何从扩展类访问父级的父级方法?
- html - 通过javascript添加HTML时,Angular FormBuilder不应用元素值
- python - 以非 root 用户身份运行 python-iptables (iptc)
- apache-tika - tika 解析器出错:写入数据时出现问题,类 org.apache.cxf.jaxrs.ext.multipart.MultipartBody
- python - 使用 factor_analyzer 解释验证性因子分析中的因子载荷
- r - 以其他列为条件更改所有列