VisualGDB和Raspberry pi(VisualGDB and Raspberry pi)
使用此turotial时: http ://visualgdb.com/tutorials/raspberry/crosscompiler/。
我在Visual Studio 2012中构建了解决方案,我得到了这个输出:
1>------ Build started: Project: LinuxHelloWorld, Configuration: Debug Win32 ------ 1> VisualGDB: Attempting inline build... 1> VisualGDB: Run "cmd.exe /c "C:\SysGCC\raspberry\bin\make.exe" CONFIG=Debug" in directory "C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld" on local computer 1> make: *** No targets specified and no makefile found. Stop. 1> ------------------------------------------------------------- 1> Command exited with code 2 1> Executable: cmd.exe 1> Arguments: /c "C:\SysGCC\raspberry\bin\make.exe" CONFIG=Debug 1> Directory: C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld 1>VisualGDB : error : Command-line action failed 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command ""C:\Program Files (x86)\Sysprogs\VisualGDB\VisualGDB.exe" /build "C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld\LinuxHelloWorld.vcxproj" "/solution:C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld.sln" "/config:Debug" "/platform:Win32"" exited with code 1. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我对下一步命令行失败感到困惑。 提前谢谢!!
添加10/20。 C:\ Users \ Kels \ LinuxHelloWorld \ LinuxHelloWorld中的Makefile
#Generated by VisualGDB project wizard. #Note: VisualGDB will automatically update this file when you add new sources to the project. #All other changes you make in this file will be preserved. #Visit http://visualgdb.com/makefiles for more details #VisualGDB: AutoSourceFiles #<--- remove this line to disable auto-updating of SOURCEFILES and EXTERNAL_LIBS TARGETNAME := LinuxHelloWorld #TARGETTYPE can be APP, STATIC or SHARED TARGETTYPE := APP to_lowercase = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1)))))))))))))))))))))))))) CONFIG ?= DEBUG CONFIGURATION_FLAGS_FILE := $(call to_lowercase,$(CONFIG)).mak include $(CONFIGURATION_FLAGS_FILE) include $(ADDITIONAL_MAKE_FILES) ifeq ($(BINARYDIR),) error: $(error Invalid configuration, please check your inputs) endif SOURCEFILES := LinuxHelloWorld.cpp EXTERNAL_LIBS := EXTERNAL_LIBS_COPIED := $(foreach lib, $(EXTERNAL_LIBS),$(BINARYDIR)/$(notdir $(lib))) CFLAGS += $(COMMONFLAGS) CXXFLAGS += $(COMMONFLAGS) ASFLAGS += $(COMMONFLAGS) LDFLAGS += $(COMMONFLAGS) CFLAGS += $(addprefix -I,$(INCLUDE_DIRS)) CXXFLAGS += $(addprefix -I,$(INCLUDE_DIRS)) CFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) CXXFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) ASFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) CXXFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) CFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) LDFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) LDFLAGS += $(addprefix -L,$(LIBRARY_DIRS)) ifeq ($(GENERATE_MAP_FILE),1) LDFLAGS += -Wl,-Map=$(BINARYDIR)/$(basename $(TARGETNAME)).map endif LIBRARY_LDFLAGS = $(addprefix -l,$(LIBRARY_NAMES)) ifeq ($(IS_LINUX_PROJECT),1) RPATH_PREFIX := -Wl,--rpath='$$ORIGIN/../ LIBRARY_LDFLAGS += $(EXTERNAL_LIBS) LIBRARY_LDFLAGS += -Wl,--rpath='$$ORIGIN' LIBRARY_LDFLAGS += $(addsuffix ',$(addprefix $(RPATH_PREFIX),$(dir $(EXTERNAL_LIBS)))) ifeq ($(TARGETTYPE),SHARED) CFLAGS += -fPIC CXXFLAGS += -fPIC ASFLAGS += -fPIC LIBRARY_LDFLAGS += -Wl,-soname,$(TARGETNAME) endif ifneq ($(LINUX_PACKAGES),) PACKAGE_CFLAGS := $(foreach pkg,$(LINUX_PACKAGES),$(shell pkg-config --cflags $(pkg))) PACKAGE_LDFLAGS := $(foreach pkg,$(LINUX_PACKAGES),$(shell pkg-config --libs $(pkg))) CFLAGS += $(PACKAGE_CFLAGS) CXXFLAGS += $(PACKAGE_CFLAGS) LIBRARY_LDFLAGS += $(PACKAGE_LDFLAGS) endif else LIBRARY_LDFLAGS += $(EXTERNAL_LIBS) endif LIBRARY_LDFLAGS += $(ADDITIONAL_LINKER_INPUTS) all_make_files := $(firstword $(MAKEFILE_LIST)) $(CONFIGURATION_FLAGS_FILE) $(ADDITIONAL_MAKE_FILES) ifeq ($(STARTUPFILES),) all_source_files := $(SOURCEFILES) else all_source_files := $(STARTUPFILES) $(filter-out $(STARTUPFILES),$(SOURCEFILES)) endif source_obj1 := $(all_source_files:.cpp=.o) source_obj2 := $(source_obj1:.c=.o) source_obj3 := $(source_obj2:.s=.o) source_obj4 := $(source_obj3:.S=.o) source_obj5 := $(source_obj4:.cc=.o) source_objs := $(source_obj5:.cxx=.o) all_objs := $(addprefix $(BINARYDIR)/, $(notdir $(source_objs))) PRIMARY_OUTPUTS := ifeq ($(GENERATE_BIN_FILE),1) PRIMARY_OUTPUTS += $(BINARYDIR)/$(basename $(TARGETNAME)).bin endif ifeq ($(GENERATE_IHEX_FILE),1) PRIMARY_OUTPUTS += $(BINARYDIR)/$(basename $(TARGETNAME)).ihex endif ifeq ($(PRIMARY_OUTPUTS),) PRIMARY_OUTPUTS := $(BINARYDIR)/$(TARGETNAME) endif all: $(PRIMARY_OUTPUTS) $(BINARYDIR)/$(basename $(TARGETNAME)).bin: $(BINARYDIR)/$(TARGETNAME) $(OBJCOPY) -O binary $< $@ $(BINARYDIR)/$(basename $(TARGETNAME)).ihex: $(BINARYDIR)/$(TARGETNAME) $(OBJCOPY) -O ihex $< $@ ifeq ($(TARGETTYPE),APP) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(EXTERNAL_LIBS) $(LD) -o $@ $(LDFLAGS) $(START_GROUP) $(all_objs) $(LIBRARY_LDFLAGS) $(END_GROUP) endif ifeq ($(TARGETTYPE),SHARED) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(EXTERNAL_LIBS) $(LD) -shared -o $@ $(LDFLAGS) $(START_GROUP) $(all_objs) $(LIBRARY_LDFLAGS) $(END_GROUP) endif ifeq ($(TARGETTYPE),STATIC) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(AR) -r $@ $^ endif -include $(all_objs:.o=.dep) clean: ifeq ($(USE_DEL_TO_CLEAN),1) del /S /Q $(BINARYDIR) else rm -rf $(BINARYDIR) endif $(BINARYDIR): mkdir $(BINARYDIR) #VisualGDB: FileSpecificTemplates #<--- VisualGDB will use the following lines to define rules for source files in subdirectories $(BINARYDIR)/%.o : %.cpp $(all_make_files) |$(BINARYDIR) $(CXX) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.c $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.S $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(ASFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.s $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(ASFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.cc $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.cxx $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) #VisualGDB: GeneratedRules #<--- All lines below are auto-generated
When using this turotial: http://visualgdb.com/tutorials/raspberry/crosscompiler/.
I built the solution in Visual Studio 2012, and I got this output:
1>------ Build started: Project: LinuxHelloWorld, Configuration: Debug Win32 ------ 1> VisualGDB: Attempting inline build... 1> VisualGDB: Run "cmd.exe /c "C:\SysGCC\raspberry\bin\make.exe" CONFIG=Debug" in directory "C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld" on local computer 1> make: *** No targets specified and no makefile found. Stop. 1> ------------------------------------------------------------- 1> Command exited with code 2 1> Executable: cmd.exe 1> Arguments: /c "C:\SysGCC\raspberry\bin\make.exe" CONFIG=Debug 1> Directory: C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld 1>VisualGDB : error : Command-line action failed 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command ""C:\Program Files (x86)\Sysprogs\VisualGDB\VisualGDB.exe" /build "C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld\LinuxHelloWorld.vcxproj" "/solution:C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld.sln" "/config:Debug" "/platform:Win32"" exited with code 1. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I am confused on what the next step would be for the command-line failure. Thanks ahead of time!!
Added 10/20. The Makefile in C:\Users\Kels\LinuxHelloWorld\LinuxHelloWorld
#Generated by VisualGDB project wizard. #Note: VisualGDB will automatically update this file when you add new sources to the project. #All other changes you make in this file will be preserved. #Visit http://visualgdb.com/makefiles for more details #VisualGDB: AutoSourceFiles #<--- remove this line to disable auto-updating of SOURCEFILES and EXTERNAL_LIBS TARGETNAME := LinuxHelloWorld #TARGETTYPE can be APP, STATIC or SHARED TARGETTYPE := APP to_lowercase = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1)))))))))))))))))))))))))) CONFIG ?= DEBUG CONFIGURATION_FLAGS_FILE := $(call to_lowercase,$(CONFIG)).mak include $(CONFIGURATION_FLAGS_FILE) include $(ADDITIONAL_MAKE_FILES) ifeq ($(BINARYDIR),) error: $(error Invalid configuration, please check your inputs) endif SOURCEFILES := LinuxHelloWorld.cpp EXTERNAL_LIBS := EXTERNAL_LIBS_COPIED := $(foreach lib, $(EXTERNAL_LIBS),$(BINARYDIR)/$(notdir $(lib))) CFLAGS += $(COMMONFLAGS) CXXFLAGS += $(COMMONFLAGS) ASFLAGS += $(COMMONFLAGS) LDFLAGS += $(COMMONFLAGS) CFLAGS += $(addprefix -I,$(INCLUDE_DIRS)) CXXFLAGS += $(addprefix -I,$(INCLUDE_DIRS)) CFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) CXXFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) ASFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS)) CXXFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) CFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) LDFLAGS += $(addprefix -framework ,$(MACOS_FRAMEWORKS)) LDFLAGS += $(addprefix -L,$(LIBRARY_DIRS)) ifeq ($(GENERATE_MAP_FILE),1) LDFLAGS += -Wl,-Map=$(BINARYDIR)/$(basename $(TARGETNAME)).map endif LIBRARY_LDFLAGS = $(addprefix -l,$(LIBRARY_NAMES)) ifeq ($(IS_LINUX_PROJECT),1) RPATH_PREFIX := -Wl,--rpath='$$ORIGIN/../ LIBRARY_LDFLAGS += $(EXTERNAL_LIBS) LIBRARY_LDFLAGS += -Wl,--rpath='$$ORIGIN' LIBRARY_LDFLAGS += $(addsuffix ',$(addprefix $(RPATH_PREFIX),$(dir $(EXTERNAL_LIBS)))) ifeq ($(TARGETTYPE),SHARED) CFLAGS += -fPIC CXXFLAGS += -fPIC ASFLAGS += -fPIC LIBRARY_LDFLAGS += -Wl,-soname,$(TARGETNAME) endif ifneq ($(LINUX_PACKAGES),) PACKAGE_CFLAGS := $(foreach pkg,$(LINUX_PACKAGES),$(shell pkg-config --cflags $(pkg))) PACKAGE_LDFLAGS := $(foreach pkg,$(LINUX_PACKAGES),$(shell pkg-config --libs $(pkg))) CFLAGS += $(PACKAGE_CFLAGS) CXXFLAGS += $(PACKAGE_CFLAGS) LIBRARY_LDFLAGS += $(PACKAGE_LDFLAGS) endif else LIBRARY_LDFLAGS += $(EXTERNAL_LIBS) endif LIBRARY_LDFLAGS += $(ADDITIONAL_LINKER_INPUTS) all_make_files := $(firstword $(MAKEFILE_LIST)) $(CONFIGURATION_FLAGS_FILE) $(ADDITIONAL_MAKE_FILES) ifeq ($(STARTUPFILES),) all_source_files := $(SOURCEFILES) else all_source_files := $(STARTUPFILES) $(filter-out $(STARTUPFILES),$(SOURCEFILES)) endif source_obj1 := $(all_source_files:.cpp=.o) source_obj2 := $(source_obj1:.c=.o) source_obj3 := $(source_obj2:.s=.o) source_obj4 := $(source_obj3:.S=.o) source_obj5 := $(source_obj4:.cc=.o) source_objs := $(source_obj5:.cxx=.o) all_objs := $(addprefix $(BINARYDIR)/, $(notdir $(source_objs))) PRIMARY_OUTPUTS := ifeq ($(GENERATE_BIN_FILE),1) PRIMARY_OUTPUTS += $(BINARYDIR)/$(basename $(TARGETNAME)).bin endif ifeq ($(GENERATE_IHEX_FILE),1) PRIMARY_OUTPUTS += $(BINARYDIR)/$(basename $(TARGETNAME)).ihex endif ifeq ($(PRIMARY_OUTPUTS),) PRIMARY_OUTPUTS := $(BINARYDIR)/$(TARGETNAME) endif all: $(PRIMARY_OUTPUTS) $(BINARYDIR)/$(basename $(TARGETNAME)).bin: $(BINARYDIR)/$(TARGETNAME) $(OBJCOPY) -O binary $< $@ $(BINARYDIR)/$(basename $(TARGETNAME)).ihex: $(BINARYDIR)/$(TARGETNAME) $(OBJCOPY) -O ihex $< $@ ifeq ($(TARGETTYPE),APP) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(EXTERNAL_LIBS) $(LD) -o $@ $(LDFLAGS) $(START_GROUP) $(all_objs) $(LIBRARY_LDFLAGS) $(END_GROUP) endif ifeq ($(TARGETTYPE),SHARED) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(EXTERNAL_LIBS) $(LD) -shared -o $@ $(LDFLAGS) $(START_GROUP) $(all_objs) $(LIBRARY_LDFLAGS) $(END_GROUP) endif ifeq ($(TARGETTYPE),STATIC) $(BINARYDIR)/$(TARGETNAME): $(all_objs) $(AR) -r $@ $^ endif -include $(all_objs:.o=.dep) clean: ifeq ($(USE_DEL_TO_CLEAN),1) del /S /Q $(BINARYDIR) else rm -rf $(BINARYDIR) endif $(BINARYDIR): mkdir $(BINARYDIR) #VisualGDB: FileSpecificTemplates #<--- VisualGDB will use the following lines to define rules for source files in subdirectories $(BINARYDIR)/%.o : %.cpp $(all_make_files) |$(BINARYDIR) $(CXX) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.c $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.S $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(ASFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.s $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(ASFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.cc $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) $(BINARYDIR)/%.o : %.cxx $(all_make_files) |$(BINARYDIR) $(CC) $(CFLAGS) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep) #VisualGDB: GeneratedRules #<--- All lines below are auto-generated
原文:https://stackoverflow.com/questions/26455904
最满意答案
因为您使用的是
filter_input_array
,所以实际上最终会得到一个与$_POST
对应的关联数组。 因此,要在尝试时过滤掉空字段,您需要指定option
键:$option = array_filter($optionfin['option']);
Because you are using
filter_input_array
, you will actually end up with an associative array that corresponds to$_POST
. So to filter out empty fields as you are trying to do, you will need to specify theoption
key:$option = array_filter($optionfin['option']);
相关问答
更多-
function array_partition(array $array, callable $fn){ $result = [[],[]]; foreach ( $array as $value ){ $result[$fn($value)?0:1][]=$value; } return $result; } // example usage: $res = array_partition([1,2,3,4,5,6,7,8,9,10], function( ...
-
在同一个数组上使用filter_input_array和array_filter(use of filter_input_array and array_filter on the same array)[2022-03-24]
因为您使用的是filter_input_array ,所以实际上最终会得到一个与$_POST对应的关联数组。 因此,要在尝试时过滤掉空字段,您需要指定option键: $option = array_filter($optionfin['option']); Because you are using filter_input_array, you will actually end up with an associative array that corresponds to $_POST. So t ... -
为filter_input_array构建自定义FILTER_VALIDATE_XY(Build custom FILTER_VALIDATE_XY for filter_input_array)[2022-06-22]
解决方案是关键字“FILTER_CALLBACK”: function check_languages($var) { static $called = 0; $called++; echo "called: $called: $var
"; $var = filter_var($var, FILTER_SANITIZE_STRIPPED); $l = new language($var); return $l; } $filter = array( ... -
用当前数组的结构使用foreach : $people = array( "Johnny" => array("year" => 1989, "job" => "prof"), "Timmy" => array("year" => 1989, "job" => "std"), "Bobby" => array("year" => 1988), "Sam" => array("year" => 1983), "Tammy" => array("year" = ...
-
要按照您希望的方式保存代码,请尝试使用此方法 $filters = array( 'phone' => FILTER_VALIDATE_INT, 'email' => FILTER_VALIDATE_EMAIL ); if(!in_array(null || false, filter_input_array(INPUT_POST, $filters))) //enter into the db else ...
-
有一个专门为此目的而设计的函数: array_intersect() : array_intersect - 计算数组的交集 $arr2 = array_intersect($arr1, $arr2); 如果你想比较键,而不是像array_intersect()这样的值,使用array_intersect_key() : array_intersect_key - 使用键进行比较计算数组的交集 $arr2 = array_intersect_key($arr1, $arr2); 如果您想比较key=> ...
-
如何更正在没有键的数组上使用filter_input_array?(How to correctly use filter_input_array on an array without keys?)[2023-01-10]
$args = array( 'name1' => SOME_FILTER // this is for example, 'name2' => array( 'filter' => FILTER_VALIDATE_INT, 'flags' => FILTER_REQUIRE_SCALAR, ), ); $ myinputs = filter_inpu ... -
你实际上可以做你在问题中提出的建议。 您只需key_type()函数返回一个可调用函数,这是array_filter期望的第二个参数。 您可以返回一个匿名函数,并使用use关键字将参数传递给匿名函数,如CBroe提到的CBroe 。 这是一个例子: function key_type($key) { return function($value) use ($key) { return $value['type'] == $key; }; } $arr = array( ...
-
您需要将function ($var) {分配给变量并将其传递给array_filter,或者您需要为函数指定名称: function checkDate($var) { 。 function checkDate($var) { $date = date('Y-m'); return (stripos($var, $date) !== false); } $filtered = array_filter($array, 'checkDate'); 要么 $checkDate = fu ...
-
您可以创建自定义过滤器: $filter = array('filter' => FILTER_CALLBACK, 'options' => function ($input) { $filtered = filter_var($input, FILTER_SANITIZE_STRING); return $filtered ? $filtered: null; }); 然后在$args使用它: $args = array( 'value' => $filter ); $inputs = f ...