26得票3回答
创建一个静态的Haskell Linux可执行文件。

我很少遇到两个我非常喜欢的事情结合在一起给我带来这么多困扰(除了我的孩子)。我在工作中编写了一个使用类似text、xml-enumerator、attoparsec-text等库的Haskell程序。我已经在我工作的Windows机器上,我的Ubuntu虚拟机上(32位),我的Ubuntu桌面...

25得票6回答
为什么要从 .o 文件创建 .a 文件进行静态链接?

考虑以下代码: one.c:#include <stdio.h> int one() { printf("one!\n"); return 1; } two.c:#include <stdio.h> int two() { printf("two...

24得票4回答
C++ Linux静态变量的双重销毁。链接符号重叠。

环境:linux x64,编译器gcc 4.x项目具有以下结构:static library "slib" -- inside this library, there is static object "sobj" dynamic library "dlib" -- links static...

24得票4回答
使用GCC连接静态库的正确方法

为什么一些静态库(lib*.a)可以像共享库(lib*.so)一样通过链接(ld -l开关)链接,但有些不行? 我一直被教导说所有库,无论是静态的还是非静态的,都可以使用-l...进行链接,然而我遇到过一个库(GLFW),如果我尝试以这种方式链接它,它就会不停地输出“undefined re...

24得票2回答
如何将静态库添加到Visual Studio项目中

我正在尝试将静态库添加到我的项目中。为了添加静态库,我正在遵循微软的说明:http://msdn.microsoft.com/en-us/library/ms235627.aspx。 我的问题是,在添加参考时,我无法看到相关的库。在上述教程中,他们提到依赖项(即静态库)应该被添加到解决方案中。

24得票2回答
Linux上的CMake: "目标平台不支持动态链接"

我有一个非常简单的CMakeLists.txt文件。 CMAKE_MINIMUM_REQUIRED(VERSION 2.8) FIND_PACKAGE(VTK REQUIRED) PROJECT(test CXX) 这段代码实际上并没有执行任何操作。VTK软件包已经正确地安装在 /usr...

24得票3回答
使用JNI链接静态库

Java 8及其以上版本允许使用静态链接库(static linked libraries)来使用JNI,不再要求本地代码必须在共享库中。但是,在Java 8之前的版本需要将本地代码打包成共享库。我查找了一些示例,但没有找到相关的内容。 如何将JNI库静态链接到Java应用程序中呢?

23得票3回答
C库在使用gcc/g++编译时无法链接

我有一个用于gcc的C库。该库的扩展名为.lib,但始终作为静态库链接。如果我编写一个使用该库作为C代码的程序,一切都可以。但是,如果我将文件重命名为.cpp(做一些在C/C++中都起作用的简单操作),我会得到未定义的引用错误。这些是我为测试目的编写的简单小程序,没有花哨的东西。我使用以下命令...

23得票1回答
使用-fopenmp和-lgomp连接OpenMP的区别

最近几天我一直在遇到一个奇怪的问题。我们使用GCC 4.8创建了一些库,其中一些依赖关系是静态链接的,例如log4cplus或boost。我们使用boost-python创建了这些库的Python绑定。 每次这样的库使用TLS(例如log4cplus在其静态初始化时或stdlibc++在抛出...

22得票3回答
我该如何在Rust中指定链接器路径?

我正在尝试将一个Rust程序与libsoundio链接起来。我在使用Windows,并有GCC二进制文件可供下载。如果我将它放在与我的项目相同的文件夹中,我可以像这样进行链接: #[link(name = ":libsoundio-1.1.0/i686/libsoundio.a")] #[l...