Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
C++;NetBSD上的编译错误';::系统&x27;尚未申报 我有一些C++代码,在Linux上编译得很好,但是到目前为止,在NETBSD上编译它是有问题的。_C++_Unix_Boost_G++_Netbsd - Fatal编程技术网

C++;NetBSD上的编译错误';::系统&x27;尚未申报 我有一些C++代码,在Linux上编译得很好,但是到目前为止,在NETBSD上编译它是有问题的。

C++;NetBSD上的编译错误';::系统&x27;尚未申报 我有一些C++代码,在Linux上编译得很好,但是到目前为止,在NETBSD上编译它是有问题的。,c++,unix,boost,g++,netbsd,C++,Unix,Boost,G++,Netbsd,以下是我的建议: #include <fstream> #include <iostream> #include <cstdlib> #include <unistd.h> #include <iomanip> #include <boost/regex.hpp> 这将呈现此输出: Using built-in specs. COLLECT_GCC=g++ Target: x86_64--netbsd Configure

以下是我的建议:

#include <fstream>
#include <iostream>
#include <cstdlib>
#include <unistd.h>
#include <iomanip>
#include <boost/regex.hpp>
这将呈现此输出:

Using built-in specs.
COLLECT_GCC=g++
Target: x86_64--netbsd

Configured with: /usr/src2/tools/gcc/../../external/gpl3/gcc/dist/configure --target=x86_64--netbsd --enable-long-long --enable-threads --with-bugurl=http://www.NetBSD.org/Misc/send-pr.html --with-pkgversion='NetBSD nb2 20111202' --enable-__cxa_atexit --with-tune=nocona --with-mpc=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-mpfr=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-gmp=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --enable-tls --disable-multilib --disable-symvers --disable-libstdcxx-pch --build=x86_64-unknown-netbsd5.99.56 --host=x86_64--netbsd

Thread model: posix

gcc version 4.5.3 (NetBSD nb2 20110806) 
COLLECT_GCC_OPTIONS='-v' '-O2' '-fno-strict-aliasing' '-I' '/usr/pkg/include/' '-o' 'a.out' '-L' '/usr/pkg/lib/' '-mtune=nocona' '-march=x86-64'
 /usr/libexec/cc1plus -quiet -v -I /usr/pkg/include/ barefoot.cpp -quiet -dumpbase barefoot.cpp -mtune=nocona -march=x86-64 -auxbase barefoot -O2 -version -fno-strict-aliasing -o /var/tmp//cc9Dcmwi.s
GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
        compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9

GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
#include "..." search starts here:
#include <...> search starts here:
 /usr/pkg/include/
 /usr/include/g++
 /usr/include/g++/backward
 /usr/include/gcc-4.5
 /usr/include
End of search list.

GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
        compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
Compiler executable checksum: a34e7d170f4dd8d4687d2b62e8dca4b7
In file included from /usr/include/g++/bits/gthr.h:166:0,
                 from /usr/include/g++/ext/atomicity.h:34,
                 from /usr/include/g++/bits/ios_base.h:41,
                 from /usr/include/g++/ios:43,
                 from /usr/include/g++/istream:40,
                 from /usr/include/g++/fstream:40,
                 from barefoot.cpp:29:
/usr/include/g++/bits/gthr-default.h:130:9: error: 'pthread_detach' was not declared in this scope
/usr/include/g++/bits/gthr-default.h:130:1: error: invalid type in declaration before ';' token
/usr/include/g++/bits/gthr-default.h: In function 'int __gthread_detach(pthread_st*)':
/usr/include/g++/bits/gthr-default.h:668:46: error: '__gthrw_pthread_detach' cannot be used as a function
In file included from /usr/pkg/include/boost/regex/v4/regex_workaround.hpp:25:0,
                 from /usr/pkg/include/boost/regex/v4/regex.hpp:32,
                 from /usr/pkg/include/boost/regex.hpp:31,
                 from barefoot.cpp:32:
/usr/include/g++/cstdlib: At global scope:
/usr/include/g++/cstdlib:132:11: error: '::system' has not been declared
使用内置规格。
收集\u GCC=g++
目标:x86_64——netbsd
配置为:/usr/src2/tools/gcc/。/../external/gpl3/gcc/dist/configure--target=x86_64--netbsd--enable long long--enable threads--with bugurl=http://www.NetBSD.org/Misc/send-pr.html --使用pkgversion='NetBSD nb2 20111202'-启用-\ucxa\u atexit-使用tune=nocona-使用mpc=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr--使用mpfr=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr--gmp=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr--enable tls--disable multilib--disable symvers--disable libstdcxx pch--build x86_64-unknown-netbsd5.99.56--host=x86_64--netbsd
线程模型:posix
gcc版本4.5.3(NetBSD nb2 20110806)
COLLECT\u GCC\u OPTIONS='-v'-O2'-fno严格别名'-I'/usr/pkg/include/'-o''a.out'-L'/usr/pkg/lib/'-mtune=nocona'-march=x86-64'
/usr/libexec/cc1plus-quiet-v-I/usr/pkg/include/barefoot.cpp-quiet-dumpbase barefoot.cpp-mtune=nocona-march=x86-64-auxbase barefoot-O2-version-fno严格别名-o/var/tmp//cc9Dcmwi
GNU C++(NETBSD NB2 20110806)版本4.5.3(X86Y64—NETBSD)
由GNU C版本4.5.3、GMP版本5.0.2、MPFR版本3.0.1-p4、MPC版本0.9编译
GGC启发式:--param GGC min expand=99--param GGC min heapsize=131007
#包括“…”搜索从这里开始:
#包括搜索从这里开始:
/usr/pkg/include/
/usr/include/g++
/usr/include/g++/backward
/usr/include/gcc-4.5
/usr/包括
搜索列表结束。
GNU C++(NETBSD NB2 20110806)版本4.5.3(X86Y64—NETBSD)
由GNU C版本4.5.3、GMP版本5.0.2、MPFR版本3.0.1-p4、MPC版本0.9编译
GGC启发式:--param GGC min expand=99--param GGC min heapsize=131007
编译器可执行校验和:a34e7d170f4dd8d4687d2b62e8dca4b7
在/usr/include/g++/bits/gthr.h:166:0中包含的文件中,
from/usr/include/g++/ext/atomicity.h:34,
从/usr/include/g++/bits/ios_base.h:41,
从/usr/include/g++/ios:43,
从/usr/include/g++/istream:40,
从/usr/include/g++/fstream:40,
从赤脚开始。cpp:29:
/usr/include/g++/bits/gthr default.h:130:9:错误:“pthread_detach”未在此范围内声明
/usr/include/g++/bits/gthr default.h:130:1:错误:在“;”之前的声明中类型无效代币
/usr/include/g++/bits/gthr default.h:在函数“int\uu gthread\u detach(pthread\u st*)”中:
/usr/include/g++/bits/gthr default.h:668:46:错误:“\uu gthrw\u pthread\u detach”不能用作函数
在/usr/pkg/include/boost/regex/v4/regex_workaround.hpp:25:0中包含的文件中,
从/usr/pkg/include/boost/regex/v4/regex.hpp:32,
from/usr/pkg/include/boost/regex.hpp:31,
从赤脚开始。cpp:32:
/usr/include/g++/cstdlib:在全球范围内:
/usr/include/g++/cstdlib:132:11:错误:“::系统”尚未声明

我尝试添加
-lpthread
,但结果是相同的输出。不确定下一步要尝试什么。

我不知道您面临此问题的确切原因,但我可以为您提供下一步要尝试的步骤

  • 请注意,第一个错误是缺少
    pthread\u detach
    。系统头文件通常会确保包含所需的任何头文件,但您可以尝试在所有其他头文件之上添加

  • 如果失败,您需要确定添加
    #include
    后包含了哪个文件,并确保
    pthread_detach
    在其中(它确实应该在某个地方)

  • 假设它存在,一定有一些条件编译导致它对源代码不可见。查找条件保护,以及哪些宏值会影响它

  • 然后,您需要了解为什么系统定义宏值时会导致函数
    pthread\u detach
    不可见

通过此调查,您可能会发现您没有包含正确的
文件。这可能是因为系统包含目录与要使用的包含目录冲突


(位于底部)显示如何显示
g++
编译器的预定义宏。

看起来您忘记了
#包含所需的标题,例如
?谢谢。我添加了unistd.h,但没有更改。相同的精确输出。请尝试添加
-pthread
,而不是
-lpthread
。-pthread呈现相同的错误。第一个错误表示缺少
pthread\u detach
。找出系统包含的
pthread.h
文件,然后检查
pthread\u detach
是否在其中。然后,检查
#如果
防护装置阻止其可见。然后检查为什么系统定义了阻止其可见的宏。
Using built-in specs.
COLLECT_GCC=g++
Target: x86_64--netbsd

Configured with: /usr/src2/tools/gcc/../../external/gpl3/gcc/dist/configure --target=x86_64--netbsd --enable-long-long --enable-threads --with-bugurl=http://www.NetBSD.org/Misc/send-pr.html --with-pkgversion='NetBSD nb2 20111202' --enable-__cxa_atexit --with-tune=nocona --with-mpc=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-mpfr=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --with-gmp=/var/obj/mknative/amd64/usr/src2/destdir.amd64/usr --enable-tls --disable-multilib --disable-symvers --disable-libstdcxx-pch --build=x86_64-unknown-netbsd5.99.56 --host=x86_64--netbsd

Thread model: posix

gcc version 4.5.3 (NetBSD nb2 20110806) 
COLLECT_GCC_OPTIONS='-v' '-O2' '-fno-strict-aliasing' '-I' '/usr/pkg/include/' '-o' 'a.out' '-L' '/usr/pkg/lib/' '-mtune=nocona' '-march=x86-64'
 /usr/libexec/cc1plus -quiet -v -I /usr/pkg/include/ barefoot.cpp -quiet -dumpbase barefoot.cpp -mtune=nocona -march=x86-64 -auxbase barefoot -O2 -version -fno-strict-aliasing -o /var/tmp//cc9Dcmwi.s
GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
        compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9

GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
#include "..." search starts here:
#include <...> search starts here:
 /usr/pkg/include/
 /usr/include/g++
 /usr/include/g++/backward
 /usr/include/gcc-4.5
 /usr/include
End of search list.

GNU C++ (NetBSD nb2 20110806) version 4.5.3 (x86_64--netbsd)
        compiled by GNU C version 4.5.3, GMP version 5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131007
Compiler executable checksum: a34e7d170f4dd8d4687d2b62e8dca4b7
In file included from /usr/include/g++/bits/gthr.h:166:0,
                 from /usr/include/g++/ext/atomicity.h:34,
                 from /usr/include/g++/bits/ios_base.h:41,
                 from /usr/include/g++/ios:43,
                 from /usr/include/g++/istream:40,
                 from /usr/include/g++/fstream:40,
                 from barefoot.cpp:29:
/usr/include/g++/bits/gthr-default.h:130:9: error: 'pthread_detach' was not declared in this scope
/usr/include/g++/bits/gthr-default.h:130:1: error: invalid type in declaration before ';' token
/usr/include/g++/bits/gthr-default.h: In function 'int __gthread_detach(pthread_st*)':
/usr/include/g++/bits/gthr-default.h:668:46: error: '__gthrw_pthread_detach' cannot be used as a function
In file included from /usr/pkg/include/boost/regex/v4/regex_workaround.hpp:25:0,
                 from /usr/pkg/include/boost/regex/v4/regex.hpp:32,
                 from /usr/pkg/include/boost/regex.hpp:31,
                 from barefoot.cpp:32:
/usr/include/g++/cstdlib: At global scope:
/usr/include/g++/cstdlib:132:11: error: '::system' has not been declared