[英]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.