草庐IT

dynamic-assemblies

全部标签

assembly - Go 没有链接我的程序集 : undefined external function

我正在尝试编写一些SIMD,主要用于学习目的。我知道Go可以链接程序集,但我无法让它正常工作。这是我能做的最小的例子(元素向量乘法):vec_amd64.s(注意:实际文件在RET下有一个空白行,否则会导致错误)//funcmul(v1,v2Vec4)Vec4TEXT.mul(SB),4,$0-48MOVUPSv1+0(FP),X0MOVUPSv2+16(FP),X1MULPSX1,X0//alsotriedret+32sinceI'veseensomeplacesdothatMOVUPSX0,toReturn+32(FP)RETvec.gopackagesimdtypeVec4[4]

assembly - Go 没有链接我的程序集 : undefined external function

我正在尝试编写一些SIMD,主要用于学习目的。我知道Go可以链接程序集,但我无法让它正常工作。这是我能做的最小的例子(元素向量乘法):vec_amd64.s(注意:实际文件在RET下有一个空白行,否则会导致错误)//funcmul(v1,v2Vec4)Vec4TEXT.mul(SB),4,$0-48MOVUPSv1+0(FP),X0MOVUPSv2+16(FP),X1MULPSX1,X0//alsotriedret+32sinceI'veseensomeplacesdothatMOVUPSX0,toReturn+32(FP)RETvec.gopackagesimdtypeVec4[4]

c++ - 使用 Intel 编译器 : looking at the assembly 的 Windows 和 Linux 之间的性能差异

我正在Windows和Linux(x86-64)上运行一个程序。它使用相同的编译器(IntelParallelStudioXE2017)和相同的选项编译,Windows版本比Linux版本快3倍。罪魁祸首是调用std::erf这两种情况都在英特尔数学库中得到解决(默认情况下,它在Windows上是动态链接,在Linux上是静态链接,但在Linux上使用动态链接可以获得相同的性能)。这是一个重现问题的简单程序。#include#includeintmain(){intn=100000000;floatsum=1.0f;for(intk=0;k当我使用vTune分析这个程序时,我发现程序集

c++ - 使用 Intel 编译器 : looking at the assembly 的 Windows 和 Linux 之间的性能差异

我正在Windows和Linux(x86-64)上运行一个程序。它使用相同的编译器(IntelParallelStudioXE2017)和相同的选项编译,Windows版本比Linux版本快3倍。罪魁祸首是调用std::erf这两种情况都在英特尔数学库中得到解决(默认情况下,它在Windows上是动态链接,在Linux上是静态链接,但在Linux上使用动态链接可以获得相同的性能)。这是一个重现问题的简单程序。#include#includeintmain(){intn=100000000;floatsum=1.0f;for(intk=0;k当我使用vTune分析这个程序时,我发现程序集

c++ - C++ 中的 dynamic_cast 和 static_cast

我对C++中的dynamic_cast关键字感到很困惑。structA{virtualvoidf(){}};structB:publicA{};structC{};voidf(){Aa;Bb;A*ap=&b;B*b1=dynamic_cast(&a);//NULL,because'a'isnota'B'B*b2=dynamic_cast(ap);//'b'C*c=dynamic_cast(ap);//NULL.A&ar=dynamic_cast(*ap);//Ok.B&br=dynamic_cast(*ap);//Ok.C&cr=dynamic_cast(*ap);//std::bad

c++ - C++ 中的 dynamic_cast 和 static_cast

我对C++中的dynamic_cast关键字感到很困惑。structA{virtualvoidf(){}};structB:publicA{};structC{};voidf(){Aa;Bb;A*ap=&b;B*b1=dynamic_cast(&a);//NULL,because'a'isnota'B'B*b2=dynamic_cast(ap);//'b'C*c=dynamic_cast(ap);//NULL.A&ar=dynamic_cast(*ap);//Ok.B&br=dynamic_cast(*ap);//Ok.C&cr=dynamic_cast(*ap);//std::bad

c# - 'statically linked' 和 'dynamically linked' 是什么意思?

我经常听到“静态链接”和“动态链接”这两个术语,通常指的是用C编写的代码。,C++或C#.它们是什么,它们到底在说什么,它们在链接什么? 最佳答案 从源代码(你写的)到可执行代码(你运行的)有两个阶段(在大多数情况下,不考虑解释代码)。首先是将源代码转换为目标模块的编译。第二个,链接,是将对象模块组合在一起形成可执行文件。区别在于,除其他外,允许第​​三方库包含在您的可执行文件中,而您不会看到它们的源代码(例如用于数据库访问、网络通信和图形用户界面的库),或者用于在不同的语言(例如C和汇编代码),然后将它们链接在一起。当您静态将文件

c# - 'statically linked' 和 'dynamically linked' 是什么意思?

我经常听到“静态链接”和“动态链接”这两个术语,通常指的是用C编写的代码。,C++或C#.它们是什么,它们到底在说什么,它们在链接什么? 最佳答案 从源代码(你写的)到可执行代码(你运行的)有两个阶段(在大多数情况下,不考虑解释代码)。首先是将源代码转换为目标模块的编译。第二个,链接,是将对象模块组合在一起形成可执行文件。区别在于,除其他外,允许第​​三方库包含在您的可执行文件中,而您不会看到它们的源代码(例如用于数据库访问、网络通信和图形用户界面的库),或者用于在不同的语言(例如C和汇编代码),然后将它们链接在一起。当您静态将文件

visual-studio - VS2005 : Assembly '<assembly>' is incorrectly specified as a file.

我已在我的项目中添加了对log4net程序集dll的引用。当我构建时,我收到一条警告:WarningAssembly'Lib\log4net.dll'isincorrectlyspecifiedasafile.我查了helpforthiserroronMSDN,它说:Thiswarningisgeneratedduringapplicationmanifestgenerationwhenthebuildprocessdetectsthatafilereferenceisactuallya(managedornative)assembly.这正是我正在做的;文件引用是一个程序集。我在这里

visual-studio - VS2005 : Assembly '<assembly>' is incorrectly specified as a file.

我已在我的项目中添加了对log4net程序集dll的引用。当我构建时,我收到一条警告:WarningAssembly'Lib\log4net.dll'isincorrectlyspecifiedasafile.我查了helpforthiserroronMSDN,它说:Thiswarningisgeneratedduringapplicationmanifestgenerationwhenthebuildprocessdetectsthatafilereferenceisactuallya(managedornative)assembly.这正是我正在做的;文件引用是一个程序集。我在这里