这是从运行脚本以检查Tensorflow是否正常工作时收到的消息:
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so.8.0 locally
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use AVX instructions, but these are available …Run Code Online (Sandbox Code Playgroud) 我只是想知道-fpermissiveg ++编译器中的标志是什么?我正进入(状态:
错误:获取临时[-fpermissive]的地址
我可以通过给-fpermissive编译器提供标志来解决 这个问题.
编辑:我刚刚发现导致临时地址错误的部分!我现在要修理那个部分.
我正在努力学习汇编语言.我搜索并发现如何反汇编.c文件,但我认为它产生了一些优化版本的程序.有什么办法可以让我看到与我的C文件对应的确切汇编代码.
这两个选项之间的真正区别是什么?我所知道的是:
注册COM Interop
此选项在程序集上执行regasm,并将程序集注册为注册表中的COM组件(或者可能不是),所有COM类似注册表项.此步骤是否生成TLB文件?还做了什么?
有时我看到在编译项目时会生成tlb但有时不会,这是为什么?
使装配COM可见
这个装配对装配有什么影响?如果我在这个程序集中有以下类型,即使我的类型被标记为ComVisible,我仍然需要指定"使程序集COM可见"吗?
[GuidAttribute("02810C22-3FF2-4fc2-A7FD-5E103446DEB0"), ComVisible(true)]
public interface IMyInterface
{
}
Run Code Online (Sandbox Code Playgroud) 我可能只是盲目的,但在MSBUILD中是否有指定条件编译符号的命令行?
我目前在我的buildscript中有这行:
SET MSBUILD=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
SET CONFIG=Debug
%MSBUILD% /p:Configuration=%CONFIG% /p:OutputPath=..\..\output source\MyProject\MyProject.csproj
Run Code Online (Sandbox Code Playgroud)
我想补充一个条件.在Visual Studio中,我可以进入Project Properties => Build =>条件编译符号,但我还没有看到msbuild的选项?
Bonus Karma如果你知道我是否可以完全覆盖.csproj文件中已经指定的所有符号,以确保只有我的Buildscript中的条件进入.
Microsoft的C++编译器(cl.exe包含在Visual Studio中)提供了几个优化开关.大多数它们之间的差异似乎是不言自明的,但我不清楚它之间的区别/O2(它优化代码以获得最大速度)和/Ox(选择"完全优化").
我试着阅读文档的/Ox选项,它似乎证实,该交换机还支持优化的最高速度,而不是大小:
所述
/Ox编译器选项产生在较小尺寸有利于代码的执行速度.
但特别是,"备注"部分下面的声明引起了我的注意:
通常,指定
/O2(最大化速度)而不是/Ox.
所以我的问题是,为什么要一个普遍青睐/O2了/Ox?后一个选项是否允许已知的特定优化导致无法预料的错误或其他意外行为?是否只是获得的优化量不值得额外的编译时间?或者这只是一个完全没有意义的"推荐",因为它/O2是VS中的默认选项?
c++ compiler-optimization compiler-options visual-studio visual-c++
在GCC 4.1.2的文件有这样说的-pipe选项:
-管
使用管道而不是临时文件进行编译的各个阶段之间的通信.这无法在汇编程序无法从管道读取的某些系统上运行; 但GNU汇编程序没有问题.
我假设我能够从错误消息中判断我的系统的汇编程序是否不支持管道,所以除了这个问题,我何时使用该选项才有意义?决定使用它应该考虑哪些因素?
我的计算机上安装了一个应用程序.如何确定它是否在DEBUG模式下编译?
我曾尝试使用.NET Reflector,但它没有显示任何具体内容.这是我看到的:
// Assembly APPLICATION_NAME, Version 8.0.0.15072
Location: C:\APPLICATION_FOLDER\APPLICATION_NAME.exe
Name: APPLICATION_NAME, Version=8.0.0.15072, Culture=neutral, PublicKeyToken=null
Type: Windows Application
Run Code Online (Sandbox Code Playgroud) 我<stdint.h>在使用-std=c++0xGCC 4.4.3(适用于Android)时遇到麻烦:
// using -std=c++0x
#include <stdint.h>
uint64_t value; // error: 'uint64_t' does not name a type
Run Code Online (Sandbox Code Playgroud)
但使用-std=gnu++0x作品:
// using -std=gnu++0x
#include <stdint.h>
uint64_t value; // OK
Run Code Online (Sandbox Code Playgroud)
是<stdint.h>使用C++ 0x中不兼容?
这个问题与Instruct Cmake在驾驶链接时使用CXX和CXXFLAGS有关吗?在前一个问题中,我们试图指示CMake CXXFLAGS在调用链接器时使用它.
add_compile_options
我们发现以下代码
if (CMAKE_VERSION VERSION_LESS 2.8.12)
add_definitions(-foo)
else()
add_compile_options(-foo)
endif()
message(STATUS, "CXXFLAGS: ${CMAKE_CXX_FLAGS}")
Run Code Online (Sandbox Code Playgroud)
产生输出
CXXFLAGS:
Run Code Online (Sandbox Code Playgroud)
SET CMAKE_CXX_FLAGS
我们发现以下代码
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -foo" )
message(STATUS, "CXXFLAGS: ${CMAKE_CXX_FLAGS}")
Run Code Online (Sandbox Code Playgroud)
产生输出
CXXFLAGS: -foo
Run Code Online (Sandbox Code Playgroud)
问题
我们发现CMake会-foo在两种情况下都使用它来创建目标文件.所以-foo肯定是进入了CXXFLAGS.
第一组CMake代码和第二组CMake代码之间有什么区别?
为什么CMAKE_CXX_FLAGS在一个实例中未设置,并在另一个实例中设置?
compiler-options ×10
gcc ×4
.net ×3
c++ ×3
android ×1
c ×1
c++11 ×1
cmake ×1
com-interop ×1
executable ×1
msbuild ×1
pipe ×1
simd ×1
tensorflow ×1
visual-c++ ×1
x86 ×1