linker相关内容
所以,我有一个调用我的 C 源代码的 MEX 网关脚本文件.我使用 -L 和 -I 命令将我的 64 位编译 GSL 库 (.libs) 链接到我的 mex 可执行文件,然后在 .mexw64 的扩展名下编译. 我希望将此可执行文件传输到另一台 Windows 机器并运行良好,而无需安装任何 GSL 库.这是唯一的解决方案,我不在乎他关于编译时动态链接/代码生成的好处的论点是什么.我想要一个
..
哈,这听起来比实际上更复杂.这就是我的意思: 假设我编写了一个使用线程的应用程序.在这个应用程序中,我没有直接使用 pthreads,而是使用了一个使用 pthreads 的包装器.因此,在这个包装器的 makefile 中,必须包含 -lpthread.还有一个问题 - 我是否需要在我的项目中包含 -lpthread ,还是没有必要?还是视情况而定?如果有,在什么方面? 我问这个,因
..
假设我有两个文件: ==文件1== extern char* foo; ==文件2== double foo; 尽管类型不匹配,这两个文件似乎与 g++ 和 clang++ 都可以很好地编译和链接.据我了解,推荐的做法是将 extern 声明放在两个文件都包含的标头中,因此 File2 将引发重新定义错误. 我的问题是: 根据 c++ 标准,这是否会导致未定义的行为?如果
..
我目前正在编写一个仅包含标头的包装库,它应该提供对某些 FORTRAN 代码的 C++ 访问.但我被困在'未定义的参考(...)' 我必须说我有点惊讶,因为我使用这个 FORTRAN 例程在 C++ 中编译了自己的函数,完全没有问题. 也许是关于结构的几句话.该库遵循单例模式,但无法由用户实例化该库.所以用户的唯一入口点是一个静态方法MultiNestWrapper::Wrapper:
..
这个 mingw 包含 gcc 4.6.3,名称为 - i686-w64-mingw32. 在 Windows 上一个 Qt 的.pro 文件 w.r.t 一个 hello world 程序: QT += 核心 gui模板 = 应用程序目标 = ef来源 = ef.cpp依赖路径 += .包含路径 += .INCLUDEPATH += c:/R-2.15.1/includeINCLUDEP
..
我遇到了一个自编译 opencv 的问题... XUbuntu 13.10 x64gcc 版本 4.8.1 cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -DINSTALL_C_EXAMPLES=开-D INSTALL_PYTHON_EXAMPLES=开-DBUILD_EXAMPLES=ON -D
..
我正在使用 EVC++,我想编译使用套接字的程序.我已经包含了 #include 我已经在项目属性中包含了 Ws2.lib 的路径但仍然在链接步骤得到错误: 错误 LNK2019:函数中引用了未解析的外部符号 WSAStartup ... 如何解决这个问题? 解决方案 #pragma comment(lib,"WS2_32")毕竟 #inc
..
我的计算机上安装了 arm-linux-androideabi-gcc,但是当我尝试编译一个简单的地狱世界时,它会报错(我选择不使用 ndk-build).我只想从命令行编译... #include 使用命名空间标准;诠释主要(){返回0;} 我收到了这个错误: 错误:iostream:没有这样的文件或目录 我在 ~/android-ndk-r8b/toolch
..
我有 3 台构建机器.一个在 Windows 2000 上运行,一个在 XP SP3 上运行,一个在 64 位 Windows Server 2008 上运行.我有一个本地 C++ 项目要构建(我正在使用 Visual Studio 2005 SP1 构建).我的目标是使用这些构建机器构建“完全相同"的 dll. 我的意思是一点一点(当然除了构建时间戳). 使用 win2k 和 win
..
我目前正在尝试将工厂实现为单例.我实际上使用了单例模式的教科书示例.这是 .h 文件: 命名空间氧气{类 ImpFactory{上市:静态提升::shared_ptr获取实例();私人的:静态提升::shared_ptr实例;}; 这是 .cpp 文件: #include "impfactory.h"使用命名空间氧气;使用命名空间提升;shar
..
我正在阅读这篇精彩的文章:https://www.technovelty.org/linux/plt-and-got-the-key-to-code-sharing-and-dynamic-libraries.html 关于动态和静态链接. 阅读完后,还有 2 个问题没有回答或不够清楚,我无法理解. 1) 这不适用于共享库 (.so).一个完整的点共享库是应用程序随机选择库的排列
..
我目前正在为 ATMega 编写中间内存引导加载程序. 我想将一段常用函数和数据放在内存中的特定位置,这样: 无法克服引导加载程序部分的大小限制 应用程序部分不会复制库函数、驱动程序等,因此会浪费空间 为了便于说明,下面是所需内存布局的地图: 在 此线程 在 avrfreaks 上,我已经能够移动未标记为 __attribute__ ((section(".boot"))
..
如何使用 Llvm/Clang(版本 3.3 (trunk 168461))提供的工具生成工作可执行文件? 我已经用 clang++ -c [...] 编译了一个对象,我想尝试将此对象链接到 1 个特定库,看看这是否可以生成一个有效的可执行文件.p> 我注意到,从 3.1 版本 llvm-ld 开始,它已被删除,并且 llvm-link 看起来并没有继承 的所有选项llvm-ld,虽然它在
..
我知道在我的文件中使用 objdump -dr 时 call 在机器代码中显示为 e8 00 00 00 00 因为它没有尚未被链接.但我需要找出链接器完成工作后 00 00 00 00 会变成什么.我知道它应该计算偏移量,但我对此有点困惑. 以下面的代码为例,链接器部分完成后,e8 00 00 00 00应该如何?我如何得到这个答案? 我正在使用此示例代码进行测试:(我正在尝试调用
..
我有两个可动态加载的库 lib_smtp.so 和 libpop.so 等.两者都有一个名为 protocol 的全局变量,分别初始化为“SMTP"和“POP".我有另一个静态库 libhttp.a,其中 protocol 被初始化为“HTTP". 现在由于某种原因,我需要静态编译所有动态可链接和可加载库并包含在可执行文件中.这样做我在链接静态库期间收到错误“multiple definit
..
当我尝试运行 Java 应用程序时,我收到以下错误: 线程“main"java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 ocijdbc9 我的 PC 上没有文件 ocijdbc9.*,但我在 %ORACLE_HOME%\bin 中有 ocijdbc10.dll. %ORACLE_HOME% 指定正确,所以我认为问题
..
我正在尝试用 C 编译并运行一个简单的“Hello World"程序,但遇到一个奇怪的错误一些C标准库函数的多重定义 .c 文件是: #include #include int main(int argc, char **argv) {printf("你好世界\n");返回0;} 我用来编译和创建可执行文件的命令是: gcc -Werror -Wa
..
我有一个链接器错误,我已简化为一个简单的示例.构建输出是: debug/main.o: 在函数 main': C:\Users\Dani\Documents\Projects\Test1/main.cpp:5:未定义的对log&的引用日志::运算符
..
目前,一个项目中的链接器在链接到另一个项目中的源文件生成的目标文件时存在问题.有没有办法手动将这些目标文件添加到 Qt 中? 解决方案 尝试在 *.pro 文件中使用 LIBS 指令; LIBS +=/path/to/foo.o
..
我想在 Windows 中创建一个静态库 (.lib),可以在后续构建中用作未定义函数的“备份". 例如,假设我有 foobar.lib,它有以下定义: FOO酒吧 我还有一些其他程序只定义了 FOO 并且将被构建到必须导出 FOO 和 BAR 的 DLL 中.我希望能够使用 foobar.lib 在生成的 DLL 中自动导出 BAR 的默认定义(并忽略 foobar.lib 中 FOO
..