将LLVM Clang 4.x.x / 5.x.x / 6.x.x集成到Visual Studio 2017中
当您尝试将项目的平台工具集设置为LLVM-vs2014时,它会弹出错误. 您知道任何使它起作用的方法吗? 更新 在2018年,LLVM 6.0正式不支持与Visual Studio 2017(版本15.x.x)的集成,仅与Visual Studio 2015(版本14.x.x)Toolset. 解决方案 最后,我找到了 更新 我做了一个 感谢 Royi ,他意识到原来的.prop文件是明确量身定制的对于LLVM 5.0,它错过了添加适当的lib( $(LLVMInstallDir)\lib)和include($(LLVMInstallDir)\lib\clang\6.0.0\include)文件夹. 其他解决方案 它需要一些仅使用C ++ V140工具集发货的MSBUILD目标,而VS 2017仅按默认情况下安装V141工具集.如果您打开VS 2017安装程序,请找到V140工具集的复选框并安装该复选框,则可以使用右C ++ MSBUILD目标并可
0 2023-11-24
编程技术问答社区
使用Clang和visual Studio 2010 Express不能编译C++程序
我正在尝试使用Visual C ++ 2010 Express来编译本教程中所述的源代码. http://kevinaboos.wordpress.com/2013/07/23/clang-tutorial-part-ii-libtooling-example/ 完整的源代码在这里. https://github.com/kevinaboos/libtoolingexample 我已使用此链接中提供的可执行文件来安装LLVM. 由于格式化问题,我无法发布完整的错误消息.但 我将尽力提供尽可能多的信息. 当我尝试构建解决方案时,我会收到以下错误: - argument unused during compilation warnings. C:\Program Files (x86)\LLVM\include\llvm/Support/Compiler.h(57,1): error : LLVM requires at least MSVC 2012. C:\Progra
0 2023-11-23
编程技术问答社区
Clang+LLVM静态库在Windows上的链接错误-为什么符号会不同?
按照LLVM网站上的说明编译了Clang和LLVM后,我尝试在测试应用中链接到已建立的静态LIB.所有代码均使用VS工具集的V110构建. IM会收到"错误LNK2001"和"错误LNK2019"类型的链接器错误. 该应用似乎将Libs放在存储桶中以进行符号分辨率.随着冗长的链接器输出,我可以看到它们只是被解雇: 1>未使用的库: ... 1> c:\ sdk \ llvm \ debug \ lib \ clangtooling.lib ... 挖掘更深的挖掘,我发现错误消息中的符号和libs中的符号并不完全相同. - 这里是一个例子 - 链接器错误=> *未解决的外部符号" public:int __cdecl clang :: tooling :: clangtool :: run(class clang :: tooling :: toolaction :: toolaction )" QEAAHPEAVTOOLACTION@23 @@ z)在
0 2023-11-20
编程技术问答社区
使用LLVM-lang对私有C++模板进行隐式实例化时出现链接器错误
免责声明:我知道模板通常是在标题文件中实现的.请阅读. 我有一个与C ++模板相关的问题.我的代码在Windows下使用MSVC构建,但在Mac OSX下没有使用LLVM-Clang,但我不确定哪一个是错误的. 这是一个简单的测试用例,由三个源文件组成: main.cpp #include "templ.h" int main() { templ(1); return 0; } templ.h template T templ(const T&); templ.cpp #include "templ.h" template T templ(const T& t) { return t; } //explicit instantiation template int templ(const int&); //implicit instantiation void f() {
0 2023-11-20
编程技术问答社区
作为类成员的unique_ptr和移动语义在clang下无法编译。
我无法获得Clang(Apple LLVM版本4.2(Clang-425.0.28))来编译这些类: struct A { int f(){return 2;} }; class Cl{ std::unique_ptr ptr; public: Cl(){ptr = std::unique_ptr(new A);} Cl(const Cl& x) : ptr(new A(*x.ptr)) { } Cl(Cl&& x) : ptr(std::move(x.ptr)) { } Cl(std::unique_ptr p) : ptr(std::move(p)) { } void m_ptr(std::unique_ptr p){ ptr = std::unique_ptr(std::move(p)); } double run(){return ptr-
2 2023-11-07
编程技术问答社区
在LLVM/Clang下编译时,名称空间'std'中没有名为'unique_ptr'的类型。
尝试在-std=c++11的Apple平台上使用unique_ptr时,我正在捕获编译错误: $ make c++ -std=c++11 -DNDEBUG -g2 -O3 -fPIC -march=native -Wall -Wextra -pipe -c 3way.cpp In file included ... ./smartptr.h:23:27: error: no type named 'unique_ptr' in namespace 'std' using auto_ptr = std::unique_ptr; ~~~~~^ ./smartptr.h:23:37: error: expected ';' after alias declaration using auto_ptr = std::unique_ptr; 根据马歇尔·克洛(Marshall Clow)的说法,我认为他是 c ++标准
4 2023-11-07
编程技术问答社区
在Ubuntu中构建llvm源代码时出现致命的错误
我正在尝试在Ubuntu 16.04上构建LLVM源代码.我已经尝试了版本4.0.1、4.0.0和3.9.0,来自这里的来源.我还尝试使用来自SVN的源,如多个教程所示. 这是我遇到的错误: [1480/1747] Linking CXX executable bin/clang-3.9 FAILED: : && /usr/bin/c++ -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -Werror=date-time -std=c++11 -fno-common -Woverloaded-vir
6 2023-11-01
编程技术问答社区
Clang VS VC++: "错误:声明'T'阴影模板参数"
我试图为经典副本和交换成语在我的Mac上带有clang 3.3 template class node{ private: node* left; node* right; T value; public: friend void swap(node&, node&); // other stuff } 链接者抱怨.我现在知道我应该将功能声明为模板.但是,如果我按照建议的在这里,将发生错误. template class Array { T* array; int size; public:template //... template friend Array* combine(Array& a1, Array& a2); }; 我确实复制了,但是有以下错误:
12 2023-10-15
编程技术问答社区
使用Swift框架的模块图时,OpenSSL库的非模块化头文件
我正在尝试使用Xcode将静态的OpenSL库链接到我的Swift框架.在线提到的大多数方法都不正确,因为它们建议使用导入路径(SWIFT_INCLUDE_PATHS).结果,将框架二进制锁定到文件系统中的特定位置,而二进制本身则无法便携.虽然这不是世界末日,但我仍然希望能够通过迦太基分发二进制,并遵循上述方法并不能实现. 我试图使用框架的雨伞标头文件来创建自己的模块图,并将OpenSL库作为显式模块,以下是这样的文章中描述的方法: https://badootech.badoo.com/bundling-c-liftling-c-liftling-in-swift-swift-swift-framework-3d950774 /p> 这是我的ModuleMap文件,将其插入MODULEMAP_FILE构建配置变量的路径. framework module MyFramework { umbrella header "MyFramework.h" requi
8 2023-10-08
编程技术问答社区
一个框架的私有模块图
我正在使用这个答案创建一个模块映射来为CommonCrypto创建一个模块,以便我可以在框架. 这样做意味着我使用此框架的任何项目都可以访问import CommonCrypto>> - 甚至更糟糕的是,在另一个框架中宣布CommonCrypto并将其导入该项目中会导致 错误. 即.以下设置: MainProject |--> import FrameworkA - module map for CommonCrypto |--> import FrameworkB - module map for CommonCrypto 有没有一种方法来创建模块地图,但是否将其私有化到其创建/使用的框架中? (很像internal swift中的访问属性用于框架). llvm clang docs 展示a private属性,但我无法确定将其放在我的模块地图中,并且可能不是甚至是为此目的! 还有一个 export属性如何使用此...! 这是我用于comm
12 2023-10-08
编程技术问答社区
iOS混合动态框架--用私有模块桥接objc头文件
关于"动态框架"目标,我需要将内部(私有)objective-c标头桥接到我的swift对应物. 根据我的理解,我需要使用私人模块. 使用@objc class TheClass语法将这些迅速的一些对应物桥接回Objective-C. 我已经在$SRCROOT下的目录中创建了module.modulemap和a module.private.modulemap文件,并在构建设置中添加了"必要"标志. SWIFT_INCLUDE_PATHS =>$(SRCROOT)/... 我还尝试在构建设置 添加"私人模块地图文件" 我的模块地图文件是: module InnerModule { export * } 和私人模块文件是: explicit module InnerModule.Private { header "../Classes/Header1.h" header "../Classes/Header2.h"
6 2023-10-07
编程技术问答社区
'ext/slist'文件在OS X 10.9上没有找到
我试图让一些较旧的第三方软件在OS X 10.9上编译.我设法通过调整Makefiles中的设置来摆脱大多数编译问题,最初是为 gcc 编写的,可能是2005年左右.但是,我目前不知道如何克服此错误C ++源文件: /utility.h:42:10:致命错误:未找到'ext/slist'文件 我知道ext/slist属于如果尽可能,我希望使用预安装的工具来编译该软件,而不是通过安装顺便说一句,这些警告也持续存在: /applications/xcode.app/contents/developer/toolchains/xcodedefault.xctoolchain/usr/bin/../lib/c ++/c ++/v1/ext/hash_set:202:2:2: 警告: 标头的使用被弃用.迁移到 [-w#警告]/applications/xcode.app/contents/developer/toolchains/xcodedefault.xctoolchain/
8 2023-09-30
编程技术问答社区
在使用llvm库构建时,我如何进行链接?
我正在尝试解析llvm-ir文件(.ll)并进行静态分析. 我在下面找到了此示例代码,我尝试构建它,但我不知道要链接哪个库. #include #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" #include "llvm/IRReader/IRReader.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; int main(int argc, char** argv) { if (argc
4 2023-09-29
编程技术问答社区
如何使用Clang找到所有成员字段的读/写?
给定一个C ++源代码,我想找到每个函数写入和读取的类字段.使用Clang Frontend做到这一点的最佳方法是什么? (我不是要对所有步骤进行详细说明;但是,有效解决方案的起点很棒.) 到目前为止,我尝试使用递归eastvisitor进行解析语句,但是很难跟踪节点连接.另外,我无法弄清楚如何跟踪以下内容: int& x = m_int_field; x++; 这显然修改了m_int_field;但是,鉴于一个Stmt,不可能知道这一点.因此,AST遍历本身似乎不足. 对我来说,一个奖励是能够分别计算字段和子场(例如,访问成员结构的三个字段). 示例: typedef struct Y { int m_structfield1; float m_structfield2; Y () { m_structfield1 = 0; m_structfield2 = 1.0f; } } Y;
6 2023-09-29
编程技术问答社区
SDL2样本在android ndk r14下的构建错误
我已经在我的Ubuntu 16.04机器上测试了在SDL2源(2.0.5)中构建样品. 根据 https://wiki.libsdl.org/android ,我安装了Android Sdk and android sdk and android sdk and im NDK R14并设置我的环境变量. ,但我未能在"简单构建"章中使用以下命令进行构建. cd /usr/src/SDL2/build-scripts/ ./androidbuild.sh org.libsdl.testgles ../test/testgles.c 它会出现以下错误. Error: The project either has no target set or the target is invalid. Please provide a --target to the 'android update' command. [armeabi] Compile thumb : S
6 2023-08-23
编程技术问答社区
R:无法更新软件包 clang无法找到头部文件
我有几个R软件包未能从源头更新/遵守.以下是错误消息的片段; clang++ -std=gnu++11 -I"/usr/local/Cellar/r/3.5.2_2/lib/R/include" -DNDEBUG -I"/Volumes/Documents/Users/akihoji/Library/R/3.x/library/Rcpp/include" -I"/Volumes/Documents/Users/akihoji/Library/R/3.x/library/RcppArmadillo/include" -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/include -fPIC -g -O2 -c RcppExports.cpp -o RcppExports.o In file included from RcppExports.cpp:4:
10 2023-07-21
编程技术问答社区
clang工具:包括路径
我想根据输入更改我的clang工具的包含路径. 当我在示例测试文件上运行以下代码时,我会有一个编译错误"未找到标头". #include "clang/Frontend/FrontendActions.h" #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Tooling.h" // Declares llvm::cl::extrahelp. #include "llvm/Support/CommandLine.h" using namespace clang::tooling; using namespace llvm; static llvm::cl::OptionCategory MyToolCategory("my-tool options"); int main(int argc , char** argv) { int argc_ = 5; const
12 2023-06-20
编程技术问答社区
用xCode 5编译protobuf
我想使用protobuf( https://code.google.com/p/protobuf/)我的项目 您是否成功地使用Xcode 5编译了Protobuf,请帮助分享您的经验? 谢谢. 解决方案 如果您不介意自己构建Google Protobuf,那么使用可可录的一个很好的替代方法是在此处运行bash脚本. https://gist.github.com/bennettsmith/7150245 此脚本将产生适当的Google Protobuf构建,该脚本支持I386,ARMV7,ARMV7,ARM64和X86_64架构.它将产生一个通用的静态库.它还将生产用于OS X的原始编译器. 其他解决方案 您可以通过将以下行添加到podfile中,将对Google协议缓冲区的支持添加到Xcode 5项目中. pod 'GoogleProtobuf', '~> 2.5.0' 这将把Protobuf代码的C ++版本放置为您项目的POD.它还将在
18 2023-06-17
编程技术问答社区
如何告诉clang我的LLVM目标应该使用16位'int'?
对于我的图片后端,我希望" int"是16位.我/我的目标如何告诉clang" int"的大小应该是多少?仅定义16位寄存器似乎不够. 当前" clang -o2 -emit -llvm -target PIC"转换 int foo(int a, int b) { return a + b; } 使用32位整数: ; ModuleID = '../test/sum.c' source_filename = "../test/sum.c" target datalayout = "e-m:e-p:16:16-i16:16-a:0:16-n16-S16" target triple = "pic" ; Function Attrs: norecurse nounwind readnone define i32 @foo(i32 %a, i32 %b) local_unnamed_addr #0 { entry: %add = add nsw i32 %b, %a
10 2023-06-06
编程技术问答社区