当前位置: 技术问答>linux和unix
急求静态库引用静态库,该如何编译链接!!!
来源: 互联网 发布时间:2016-11-30
本文导语: 本帖最后由 suyangwei 于 2011-05-18 15:25:23 编辑 我有2个cpp文件,1.cpp和2.cpp,需要把这2个文件编译成库(先以静态库为例)。 这两个文件引用了其它的库文件。 链接主文件main.cpp时,报main函数调用的函数未定义。被调用...
这两个文件引用了其它的库文件。
链接主文件main.cpp时,报main函数调用的函数未定义。被调用的函数在1.cpp中。
网上说,自己的库文件若引用到第三方库文件,链接的时候同样需要给出第三方的库文件路径和文件。
# gcc -c 1.cpp 2.cpp
# ar cr libmd.a 1.o 2.o
# g++ -o main main.cpp -L ./ -lmd
/tmp/ccM2VGmB.o: In function `main':
main.cpp:(.text+0x12): undefined reference to `RunFunc()'
|
那你编译的时候再连接第三方库啊
g++ -o main main.cpp -L ./ -lmd -L third_path -l third_lib_name
g++ -o main main.cpp -L ./ -lmd -L third_path -l third_lib_name
|
一:确保你main.cpp里面包含了对应的头文件(RunFunc()声明的头文件)
二:例如RunFunc()所在lib叫 ../testlib/libtest.a
利用 g++ -o main main.cpp ../testlib/libtest.a
或者 g++ -o main main.cpp -L ../testlib -ltest
二:例如RunFunc()所在lib叫 ../testlib/libtest.a
利用 g++ -o main main.cpp ../testlib/libtest.a
或者 g++ -o main main.cpp -L ../testlib -ltest