问题标签 [linkage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 具有外部链接的编译器的不同行为
当我在 VC++ 10 上编译以下源时,i
带有静态链接的被分配给42
但在 G++ 4.5.1 上,i
source2.cpp 中的带有外部链接的被分配给42
.
关于根据标准确认行为的标准应该是什么或为什么?
iphone - Iphone,存档期间收到错误
我目前正在尝试归档我的应用程序以进行测试,但它会产生以下错误:
Ld“/Users/Simon/Library/Developer/Xcode/DerivedData/Photo_Gallery-fycuagscgzkapvglqzfytatmaxzm/ArchiveIntermediates/Photo Gallery/IntermediateBuildFilesPath/Photo Gallery.build/Ad Hoc-iphoneos/Photo Gallery.build/Objects-normal/armv6/Photo Gallery”正常 armv6 cd "/Users/Simon/Desktop/Project/Photo Gallery" setenv IPHONEOS_DEPLOYMENT_TARGET 4.3 setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/ bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4。 3.sdk“-L/Users/Simon/Library/Developer/Xcode/DerivedData/Photo_Gallery-fycuagscgzkapvglqzfytatmaxzm/ArchiveIntermediates/Photo Gallery/BuildProductsPath/Ad Hoc-iphoneos”“-L/Users/Simon/Desktop/Project/Photo Gallery/Photo Gallery/Admob” “-F/Users/Simon/Library/Developer/Xcode/DerivedData/Photo_Gallery-fycuagscgzkapvglqzfytatmaxzm/ArchiveIntermediates/Photo Gallery/BuildProductsPath/Ad Hoc- iphoneos"-F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks-filelist"/Users/Simon/Library/Developer/Xcode/DerivedData/Photo_Gallery-fycuagscgzkapvglqzfytatmaxzm/ArchiveIntermediates/ Photo Gallery/IntermediateBuildFilesPath/Photo Gallery.build/Ad Hoc-iphoneos/Photo Gallery.build/Objects-normal/armv6/Photo Gallery.LinkFileList" -dead_strip -miphoneos-version-min=4。3 -framework AudioToolbox -framework CoreGraphics -framework MessageUI -framework SystemConfiguration -framework UIKit -framework Foundation -framework AssetsLibrary -lGoogleAdMobAds -o "/Users/Simon/Library/Developer/Xcode/DerivedData/Photo_Gallery-fycuagscgzkapvglqzfytatmaxzm/ArchiveIntermediates/Photo Gallery/IntermediateBuildFilesPath /Photo Gallery.build/Ad Hoc-iphoneos/Photo Gallery.build/Objects-normal/armv6/Photo Gallery"
ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox,文件是为不受支持的文件格式构建的,这不是架构链接(armv6)ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics,文件是为不受支持的文件格式构建的不是被链接的架构(armv6)ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/MessageUI.framework/MessageUI,文件是为不受支持而构建的不是被链接的架构的文件格式(armv6)ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration,文件是为不受支持的文件格式构建的,它不是被链接的架构(armv6) ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/UIKit.framework/UIKit,文件是为不受支持的文件格式构建的,这不是架构链接(armv6)ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation,文件是为不受支持的文件格式构建的不是被链接的架构(armv6)ld:警告:忽略文件/Developer/Platforms/iPhoneSimulator。platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary,文件是为不受支持的文件格式构建的,它不是被链接的架构(armv6)架构armv6的未定义符号:“_objc_getClassList” ,引用自:libGoogleAdMobAds.a(GTMStackTrace.o) 中的 _GTMGetStackAddressDescriptorsForAddresses"_UIApplicationDidFinishLaunchingNotification",引用自:libGoogleAdMobAds.a(GADObjectPrivate.o) 中的 +[GADObjectPrivate 初始化] +libGoogleAdMobAds.a(GADObjectPrivate.o) 中的 [GADObjectPrivate appDidFinishLaunching:] “_OBJC_METACLASS_$_NSError”,引用自:libGoogleAdMobAds.a 中的 _OBJC_METACLASS_$_GADRequestError(GADRequestError.o) libGoogleAdMobAds 中的_OBJC_METACLASS_$_GADMError。一个(GADM错误.o)
有人以前见过这些错误吗?它看起来像一些链接问题....
c - 理解 C 中的静态变量声明/初始化
我的项目中只有一个名为 test.c 的文件;如果我没有定义“TRUE”,下面的代码将无法编译。我用vc。我只是想了解这种行为。请对这方面有所了解。
string - 记录链接:比较字符串比较器
我正在做记录链接项目,我需要对各种字符串比较器做一些调查工作。我正在看的是:
Jaro-Winkler、Levenshtein 距离、最长公共子串和精确匹配。
我想知道,有没有做任何工作来确定哪个好用以及什么时候用?也就是说,Jaro-Winkler 似乎对名称有好处,但对社会安全号码进行精确匹配可能会更好。您会使用哪个地址?Jaro-Winkler 比其他人有优势吗?
有没有人可以指出我的白皮书?
谢谢。
c++ - 使函数内联会影响其链接吗?
如果我将一个函数内联,它是否会将其链接更改为内部链接?例如:我在两个文件中使用或调用内联函数:
为什么我需要在每个文件中定义内联函数才能调用它?我得到一个内部链接?如果我使用static inline
怎么办?
c++ - 将 Rob Hess 的 SIFT 库(在 C 中,使用 OpenCV)与 C++ 链接
我正在尝试在我的 C++ 项目中使用Rob Hess 的 SIFT 库。我已经查看了其他 SIFT 实现的(代码),但是这个似乎最像 Lowe 的原始论文一样分阶段,并且还使用了我熟悉的 OpenCV,所以我选择了这个。
不幸的是,自从我尝试在 C++ 中使用它之后,我就遇到了麻烦。该库最初是用 C 语言和 OpenCV 编写的。
我已经尝试在有和没有围绕 C 库 include-s 的情况下编译我的代码extern
,但都不起作用。我想我已经诊断出这两种情况的问题,但我不知道如何解决它们,我将非常感谢任何帮助。
问题(或者至少,我认为问题是什么):
withouth
extern
:由于 C++ 名称修改而不起作用(我已经检查过了,当然所有的函数名都被修饰了)with
extern
: 不起作用,因为 OpenCV 可以检测为 C 或 C++ 编译的天气。任何 SIFT 库函数都没有链接问题,但现在 OpenCV 包含 C++ 头文件,并且由于在主程序中它最终包含在extern
块中,因此我得到(字面上数百个)如下错误:/usr/local/include/opencv2/core/mat.hpp:2361: error: template with C linkage
在过去的几天里,我一直在尝试完成这项工作,因此,如果有人尝试在 C++ 中使用相同的 SIFT 库,或者在使用不同的库时遇到类似问题,我们将不胜感激。
c++ - C 链接和 C++ 头文件
我想在具有 C 链接的共享库中使用一些 c++ 类。我遇到了以下问题。
如果
编译和链接成功,但在生成的库中找不到 f()。
如果
在 iostream 中每次出现 C++ 关键字“模板”并包含头文件时,我都会遇到许多编译器错误(只是不知道如何正确地用英语翻译它们,关于带有 C 链接的模板)。
应该做什么?
c++ - 通过外部“C”函数与 C++ 对象的接口
函数能否extern "C"
接受或返回特定于 C++ 的数据类型,例如引用、指向成员的指针或非 POD 类(按值)?我在 C++ 标准中找不到任何禁止这样做的内容。从逻辑上讲,我希望标准能说明这一点,因为 C ABI 不一定适合传递此类类型。
我想使用 C 链接的原因与 C 编译器无关。该函数只能从 C++ 代码中调用。我只想从我的动态库中导出未损坏的函数名称。
一个愚蠢的代码示例:
这在 Linux 上使用 GCC 编译,并按预期工作。应该是标准的吗?
该问题是对该问题的评论中讨论的后续讨论。
更新我已经用 Comeau 编译器对此进行了测试,它没有抱怨。
c++ - 如何在命名空间中导入 C++ 类的 dll
我阅读了一些文档,其中给出了与 C 兼容的函数的简单示例。
我对此很满意。我写了一个小应用程序使用这个dll的功能。我使用了显式链接
功能。C 风格的函数可以正常工作。但是当我把我的课写成
它编译良好并创建了 Dll。在使用 C 风格的函数时,我只是从 LoadLibrary() 和 GetProcAddress(...) 函数中获取函数指针。
我以前的用法是
但现在我不知道如何实例化我的类?如何使用显式链接或隐式链接?
任何有关代码示例的帮助将不胜感激。
c++ - 为什么内联函数默认有外部链接?
该标准说,给定一个声明
这foo
是一个具有外部链接的内联函数(因为默认情况下所有函数声明都具有外部链接)。这让我觉得很奇怪。因为一个定义规则第 3.2 节(在 C++03 和 C++11 中)说:
3 ... 内联函数应在使用它的每个翻译单元中定义。
5 可以有多个 a[n] 的定义......具有外部链接的内联函数(7.1.2)......给定这样一个名为 D 的实体在多个翻译单元中定义...... D 的每个定义都应由相同的标记序列组成
这意味着内联函数也可能具有内部链接,因为通过外部链接(即跨翻译单元)以任何方式使用该函数将调用未定义的行为(根据第 3 段),并且所有翻译单元中的内联函数必须相同。
此规则是否存在向后兼容性或特定工具链原因?