bench/BenchTimer.h (31) syntax error: 'volatile'
bench/BenchTimer.h (31) syntax error: 'volatile'
你能帮我解决 Eigen 中这个令人震惊的错误吗? "bench/BenchTimer.h (31) syntax error: 'volatile'"
违规代码:bench/BenchTimer.h
static void escape(void *p) {
asm volatile("" : : "g"(p) : "memory");
}
static void clobber() {
asm volatile("" : : : "memory");
}
我的代码:tests.cpp
#include <iostream>
#include <bench/BenchTimer.h>
int main() {
Eigen::BenchTimer t;
t.reset(); t.start();
//TestEigenSolveSpeed();
t.stop();
std::cout << t.value() << std::endl;
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.11)
set(LEVELING_NAME test-eigen)
project(${LEVELING_NAME})
add_executable(${LEVELING_NAME} tests.cpp )
target_include_directories(${LEVELING_NAME} PUBLIC
${CMAKE_CURRENT_LIST_DIR}/deps/eigen-master
)
文件夹结构:
/
|
-- CMakeLists.txt
-- tests.cpp
-- deps
|
-- eigen-master
创建解决方案:
cmake . -DCMAKE_GENERATOR_PLATFORM=x64 -B build
在Windows中,在VS2017中
最新存储库版本:主版本 3.3.3
为了便于复制,这是三个文件加上存储库的压缩包:https://www.dropbox.com/s/avpfbabo4l9ti5h/test-eigen-error-volatile.zip?dl=0
正如 ggael 所提到的,解决方案是注释两个有问题的代码行:
static void escape(void *p) {
//asm volatile("" : : "g"(p) : "memory");
}
static void clobber() {
//asm volatile("" : : : "memory");
}
这个 "volatile" 似乎 supported/accepted MSVS2017
然而,它已经被 ggael 在最新版本的存储库中修复:)
你能帮我解决 Eigen 中这个令人震惊的错误吗? "bench/BenchTimer.h (31) syntax error: 'volatile'"
违规代码:bench/BenchTimer.h
static void escape(void *p) {
asm volatile("" : : "g"(p) : "memory");
}
static void clobber() {
asm volatile("" : : : "memory");
}
我的代码:tests.cpp
#include <iostream>
#include <bench/BenchTimer.h>
int main() {
Eigen::BenchTimer t;
t.reset(); t.start();
//TestEigenSolveSpeed();
t.stop();
std::cout << t.value() << std::endl;
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.11)
set(LEVELING_NAME test-eigen)
project(${LEVELING_NAME})
add_executable(${LEVELING_NAME} tests.cpp )
target_include_directories(${LEVELING_NAME} PUBLIC
${CMAKE_CURRENT_LIST_DIR}/deps/eigen-master
)
文件夹结构:
/
|
-- CMakeLists.txt
-- tests.cpp
-- deps
|
-- eigen-master
创建解决方案:
cmake . -DCMAKE_GENERATOR_PLATFORM=x64 -B build
在Windows中,在VS2017中
最新存储库版本:主版本 3.3.3
为了便于复制,这是三个文件加上存储库的压缩包:https://www.dropbox.com/s/avpfbabo4l9ti5h/test-eigen-error-volatile.zip?dl=0
正如 ggael 所提到的,解决方案是注释两个有问题的代码行:
static void escape(void *p) {
//asm volatile("" : : "g"(p) : "memory");
}
static void clobber() {
//asm volatile("" : : : "memory");
}
这个 "volatile" 似乎 supported/accepted MSVS2017
然而,它已经被 ggael 在最新版本的存储库中修复:)