小编laz*_*low的帖子

为什么g ++不与我创建的动态库链接?

我一直在尝试制作一些都依赖于同一个库的应用程序,动态库是我的第一个想法:所以我开始编写"库":

/* ThinFS.h */

class FileSystem {
public:
    static void create_container(string file_name); //Creates a new container 
};

/* ThinFS.cpp */
#include "ThinFS.h"
void FileSystem::create_container(string file_name) {
     cout<<"Seems like I am going to create a new file called "<<file_name.c_str()<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我然后编译"图书馆"

g++ -shared -fPIC FileSystem.cpp -o ThinFS.o
Run Code Online (Sandbox Code Playgroud)

然后我迅速写了一个使用Library的文件:

#include "ThinFS.h"
int main() {
    FileSystem::create_container("foo");
    return (42);
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试用它编译

g++ main.cpp -L. -lThinFS
Run Code Online (Sandbox Code Playgroud)

但它不会编译时出现以下错误:

/usr/bin/ld: cannot find -lThinFS
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些非常明显的东西,请帮帮我:)

c++ g++ dynamic-linking ld

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

dynamic-linking ×1

g++ ×1

ld ×1