Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake编译\uuu asm程序集内联代码_C_Cmake_Clion - Fatal编程技术网

Cmake编译\uuu asm程序集内联代码

Cmake编译\uuu asm程序集内联代码,c,cmake,clion,C,Cmake,Clion,我正在尝试编译quake2代码,该代码使用\uu asm关键字,如下所示: __declspec( naked ) int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p) { static int bops_initialized; static int Ljmptab[8]; __asm { push ebx cmp bops_initiali

我正在尝试编译
quake2
代码,该代码使用
\uu asm
关键字,如下所示:

__declspec( naked ) int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, 
    struct cplane_s *p)
{
    static int bops_initialized;
    static int Ljmptab[8];

    __asm {

        push ebx

        cmp bops_initialized, 1
        je  initialized
        mov bops_initialized, 1
        // more code...
我正在使用Clion,它在内部使用Cmake进行编译。问题是,在上面的代码中,我得到了以下错误

C:\Users\Shiro\ClionProjects\quake2\src\game\q_shared.c: In function 
'BoxOnPlaneSide':
C:\Users\Shiro\ClionProjects\quake2\src\game\q_shared.c:423:8: error: 
expected '(' before '{' token
__asm {
      ^
错误就从这里开始。那么,我怎样才能使它编译呢?我的CMakeLists.txt可能有任何更改吗?这是我现在拥有的一部分

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Traditional -std=gnu89")

这与CMake或Clion没有直接关系,但与您正在使用的编译器有关。GNU编译器集合(GCC)不像内联汇编程序那样对语言的扩展使用相同的语法。您需要使用一个使用
\uu asm{…}
语法的编译器,就像VisualStudio编译器一样。不幸的是,我不认为有可能与CYON做,但是,另一方面,你可能使用VisualStudioC++快件(免费的)来建立来源,或者至少有点进一步。@ JoachimPileborg,我认为你是对的,我将尝试它,并张贴一个答案,当我工作这个out@SomeprogrammerdudeIIRC MSVC支持目前处于测试阶段,可以通过程序的注册表(而不是Windows注册表)启用。请看。@NicHartley是的,现在可以使用MSVC了,而且该公告也是在我发表评论几天后发布的(doh!),所以它已经提供了将近一年了。:)@某个程序员,伙计,是的!我想我会给其他看这个的人做个笔记,这样他们就可以找到答案了。这与CMake或Clion没有直接关系,但与你正在使用的编译器有关。GNU编译器集合(GCC)不像内联汇编程序那样对语言的扩展使用相同的语法。您需要使用一个使用
\uu asm{…}
语法的编译器,就像VisualStudio编译器一样。不幸的是,我不认为有可能与CYON做,但是,另一方面,你可能使用VisualStudioC++快件(免费的)来建立来源,或者至少有点进一步。@ JoachimPileborg,我认为你是对的,我将尝试它,并张贴一个答案,当我工作这个out@SomeprogrammerdudeIIRC MSVC支持目前处于测试阶段,可以通过程序的注册表(而不是Windows注册表)启用。请看。@NicHartley是的,现在可以使用MSVC了,而且该公告也是在我发表评论几天后发布的(doh!),所以它已经提供了将近一年了。:)@某个程序员,伙计,是的!我想我会给其他看这个的人留个便条,这样他们就可以找到答案了。