Tôi đã cố gắng để làm cho một số ứng dụng mà tất cả dựa vào cùng một thư viện và thư viện động là suy nghĩ đầu tiên của tôi: Vì vậy, tôi bắt đầu viết "Thư viện":Tại sao không liên kết g ++ với thư viện động mà tôi tạo?
/* 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;
}
tôi sau đó biên dịch "Thư viện"
g++ -shared -fPIC FileSystem.cpp -o ThinFS.o
tôi sau đó nhanh chóng viết một tập tin có sử dụng thư viện:
#include "ThinFS.h"
int main() {
FileSystem::create_container("foo");
return (42);
}
sau đó tôi đã cố gắng để biên dịch rằng với
g++ main.cpp -L. -lThinFS
Nhưng nó sẽ không biên dịch với các lỗi sau:
/usr/bin/ld: cannot find -lThinFS
collect2: ld returned 1 exit status
Tôi nghĩ rằng tôi là thiếu một cái gì đó rất rõ ràng, hãy giúp tôi :)
Cảm ơn, các lib đã mất tích ở phía trước (.o thay vì .so chỉ là một lỗi đánh máy) :) – lazlow