小编use*_*495的帖子

g ++共享库找不到​​与-L相同的目录

我只是看不出我在这里做错了什么:

问:在使用共享对象编译程序时,为什么g ++找不到我的库?

我试图在我的c ++程序中包含一个共享库:

g++ -fpic -c sha.cpp
g++ -shared -o libsha.so sha.o
g++ main.cpp -o main -L. -lsha
Run Code Online (Sandbox Code Playgroud)

其中sha.cpp和sha.h是库文件,main.cpp是我的程序.

我已尝试使用静态库,它可以找到:

g++ -static -c sha.cpp -o libsha.o
ar rcs libsha.a libsha.o
g++ main.cpp -o main -L. -lsha
Run Code Online (Sandbox Code Playgroud)

该平台是windows上的cygwin,这是输出:

rob@pc /cygdrive/c/src/a
$ g++ main.cpp -o shatest -L. -lsha
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lsha
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我已阅读所有论坛帖子,但图书馆在同一个文件夹中!

$ ls
libsha.so  main.cpp  sha.cpp  sha.h  sha.o
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是,在另一个平台上,正在创建一个库,当一个对象被调用时,它可以工作,但是当构建第二个对象时应用程序崩溃.我正在做上面的简单测试!(烦恼不是那么简单).

源文件如下:

main.cpp中

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include "sha.h"

void *thread_one( void …
Run Code Online (Sandbox Code Playgroud)

c++ linker shared g++ ld

5
推荐指数
0
解决办法
2928
查看次数

标签 统计

c++ ×1

g++ ×1

ld ×1

linker ×1

shared ×1