首页 > 解决方案 > 从可执行文件创建二进制文件

问题描述

我需要一些基本的了解,

我在这个文件夹中有 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'

我需要对此有一个正确的理解,或者我该如何解决这个问题?

标签: c++cgcc

解决方案


推荐阅读