好的,我现在正在寻找 2 天的解决方案。我没有找到任何东西可以解决我的问题。
目前正在发生什么?因此,我尝试使用 g++ 在 Linux Mint Maya 13 上创建动态库 (.so)。
傻瓜.h:
#pragma once
#include <stdio.h>
void foo(
void
);
傻瓜.cpp:
#include "foolib.h"
void foo(
void
)
{
printf ("Hello World!\n");
};
主.cpp:
#include "foolib.h"
int main(
int argc,
char** argv
)
{
foo ();
};
我使用以下说明编译了这些文件:
libfoo.so:
g++ -shared -o libfoo.so -fpic foolib.cpp
富:
g++ main.cpp -o foo -L -lfoo
创建 libfoo.so 没有任何错误,但 foo 会抛出未定义的引用“foo”。我从几个网页复制了示例代码并尝试编译它,结果总是相同。
有趣的是,我可以链接做 libdl.so (-ldl),加载我的 .so 和我的函数。我究竟做错了什么?
我希望我能正确地提出我的问题。如果我没有,请告诉我。:)