将库与G ++链接

时间:2014-08-27 14:36:25

标签: hyperlink g++

很抱歉问这个新手问题,但我无法解决这个问题......

在同一目录中,我有4个文件:ctacs.ini; ct_api.h; libctacs.amain.cpp。 我的cpp文件包含#include "ct_api.h",当我尝试编译时使用:

g++ -lctacs main.cpp -o main

我得到了对我的库中定义的函数的未定义引用-__-

你能说出我错了吗?我在互联网上搜索,但选项-lctacs似乎是正确的方式......

非常感谢

1 个答案:

答案 0 :(得分:0)

某些编译器和链接器通过在命令行上从左到右搜索目标文件/源文件/库来解析对函数的引用。这意味着调用外部定义函数的文件应该在包含其定义的目标文件/库/源文件之前出现

您碰巧有一个确实依赖于此排序的链接器。您需要将库放在 main.cpp之后,以便找到函数定义:

g++ main.cpp -lctacs -o main