Tag: static linking

windows上的libcurl静态库

如何将这个库libcurl静态链接到exe? 我试过了 –disable-share –enable-static没有帮助。 我正在使用MingW32 有没有一种简单的方法来静态链接这个库,所以我可以没有更多.dlls与我的应用程序?

如何在使用gnu-make链接静态库时遵循链接顺序?

我有以下问题: cc -g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG build/liblcthw.a tests/list_tests.c -o tests/list_tests /tmp/ccpvGjZp.o: In function `test_create’: ~/lcthw/tests/list_tests.c:12: undefined reference to `List_create’ collect2: ld returned 1 exit status make: *** [tests/list_tests] Error 1 但 cc -g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG tests/list_tests.c build/liblcthw.a -o tests/list_tests 运行得很好, nm显示预期的内容,测试运行,每个人都很高兴,等等。 我搜索了SO并找到了很多答案(例如链接器命令 – GCC ),所以很清楚链接器的工作原理应该如此。 那么,我应该如何修改我的makefile以遵循命令呢? 到目前为止,这是Makefile: CFLAGS=-g […]

使用-static-libgcc -static-libstdc ++进行编译仍会导致对libc.so的动态依赖

我正在尝试制作尽可能便携的可执行文件。 删除一些依赖项后,我在另一个系统上运行二进制文件时遇到以下问题: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.15′ not found (required by foob) /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15′ not found (required by foob) /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14′ not found (required by foob) 我更喜欢我的二进制文件不要求用户升级他们的libc版本,所以我也想删除这个依赖项。 生成上述二进制文件的链接器标志已包含-static-libgcc -static-libstdc++ 。 为什么二进制文件仍然需要共享的libc.so.6 ? 我也尝试添加-static标志,但是当我尝试运行该二进制文件时,结果非常奇怪: $ ls -l foob -rwxr-xr-x 1 claudiu claudiu 13278191 Oct 10 13:03 foob $ ./foob bash: ./foob: No such file or directory […]