[英]g++ custom dynamic library linking error undefined symbol
好的,我现在正在寻找解决方案,持续2天。 我没有找到任何解决我的问题的方法。
目前发生了什么事? 因此,我尝试使用g ++在Linux Mint Maya 13上创建一个动态库(.so)。
foolib.h:
#pragma once
#include <stdio.h>
void foo(
void
);
foolib.cpp:
#include "foolib.h"
void foo(
void
)
{
printf ("Hello World!\n");
};
main.cpp:
#include "foolib.h"
int main(
int argc,
char** argv
)
{
foo ();
};
我按照以下说明编译了这些文件:
libfoo.so:
g++ -shared -o libfoo.so -fpic foolib.cpp
foo:
g++ main.cpp -o foo -L -lfoo
创建libfoo.so的工作没有任何错误,但是foo会引发未定义的引用“ foo”。 我从几个网页复制了示例代码,并尝试对其进行编译,结果始终相同。
有趣的是,我可以链接做libdl.so(-ldl),加载我的.so和我的函数。 我究竟做错了什么?
我希望我可以正确地提出我的问题。 请告诉我是否没有。 :)
您应该使用:
g++ main.cpp -o foo -L./ -lfoo
要么
g++ main.cpp -o foo libfoo.so
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.