我试图在Linux中使用共享库编译一个简单的C程序.
我在同一个文件夹中共同拥有以下文件:
mymain.c
#include "myclib.h"
int main() {
func();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
myclib.h
void func();
Run Code Online (Sandbox Code Playgroud)
myclib.c
#include <stdio.h>
void func() {
printf("hello world!!!!!!!!!!!!\n");
}
Run Code Online (Sandbox Code Playgroud)
然后我按照以下步骤操作:
gcc -c fPIC myclib.c
(创建memoryaddress独立的objectfile)
产生:myclib.o
gcc -shared -fPIC -o libmyclib.so myclib.o
(创建共享库)
gcc -c mymain.c
(从main.c创建一个目标文件)
到目前为止一切顺利 - 然后我准备好以下文件:
所以我尝试用这种语法创建一个程序:
gcc -o program -lmyclib -L. mymain.o
(我猜libmyclib的前缀lib应该替换为l?)
但我从gc编译器收到错误消息:
*mymain.o: In function `main':
mymain.c:(.text+0xa): undefined reference to `func'
collect2: error: ld returned 1 exit status*
Run Code Online (Sandbox Code Playgroud)
我也测试了这个语法:
gcc -o program mymain.c -L -lmyclib -Wl,-rpath,. …
当我实现此代码时 - 复选框的名称不会显示在浏览器中的复选框旁边 - 只是复选框本身。这是什么原因?我是否错误地使用了 setattribute-function?
<script type="text/javascript">
var x = document.createElement("INPUT");
x.setAttribute("type", "checkbox");
x.setAttribute("value", "car");
x.setAttribute("name", "vehicle");
document.body.appendChild(x);
</script>
Run Code Online (Sandbox Code Playgroud) 我想知道如何使用链接在jquery中编写代码?
var table = document.getElementById("deliver_alt_table");
var rows = table.getElementsByTagName("tr");
$(rows[0].children[1]).css('visibility', 'hidden');
Run Code Online (Sandbox Code Playgroud)
这段代码有效 - 但是如何使用一行在jquery中编写?
当我多次使用scanf时,程序不会等待另一个输入.相反,它退出
我了解到我可以在scanf函数中的转换说明符之前放置一个空格 - 是的,这解决了问题,我想这与输入流有关,即 - 如果它是输入流中的换行符,scanf将消耗它立刻.
scanf(" %f", &value);
Run Code Online (Sandbox Code Playgroud)
但如果是这样 - 为什么我不能使用fflush(stdin)呢?我试过但它不起作用.
#include <stdio.h>
int main(void)
{
float value;
char ch;
printf("input value: ");
scanf("%f", &value);
fflush(stdin);
printf("input char: ");
scanf("%c", &ch);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 实例化Fragment类时如何解决以下问题
holder.infoView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment infoFragment = new ExampleFragment();
infoFragment.show(context.getSupportFragmentManager(), "settings");
....
Run Code Online (Sandbox Code Playgroud)
该代码所属的实际类(MySimpleArrayAdapter)- 不扩展FragmentActivity- 但从扩展该类的另一个类中获取上下文(通过构造函数)。
完全一样,我不能使用诸如
infoFragment.show(context.getSupportFragmentManager(), "settings");
Run Code Online (Sandbox Code Playgroud)
我收到错误:方法Context类型的getSupportFragmentManager()未定义。
是否有解决此问题的简单方法?
为什么子类不使用polymoprhism在超类中共享相同的私有成员变量?只有一个基类实例,如果SubA通过mutator设置私有成员 - 那么为什么SubB不能访问该值.如果我希望子类共享同一个私有成员,它会是什么样子?
#include <iostream>
class Super {
private:
int cnt;
public:
int getCnt() {
return cnt;
}
void setCnt(int cnt) {
this->cnt = cnt;
}
};
class SubA: public Super {
};
class SubB: public Super {
};
int main() {
Super *super;
SubA a;
SubB b;
super = &a;
super->setCnt(10);
super = &b;
std::cout << super->getCnt() << std::endl;
super = &a;
std::cout << super->getCnt() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生产:
-8589546555 (garbage)
10
Run Code Online (Sandbox Code Playgroud) 这段代码有什么问题?
void input(int *nmbrOfUnits);
int main() {
int *nmbrOfUnits;
input(nmbrOfUnits);
}
void input(int *nmbrOfUnits) {
printf("numnber if units: ");
scanf(" %d", nmbrOfUnits);
}
Run Code Online (Sandbox Code Playgroud)
编辑:变量是在main中创建的,这应该意味着如果主调用输入变量没有从堆栈中加载.我为什么要在堆上分配它?我传递一个指针并在scanf中使用它.为什么我在这里遇到分段错误?
我无法真正获得使用swingworker的优势,而不仅仅是将繁重的任务放在一个(简单的)后台线程中.
这只是一个codesnippet,但显示了计算整数并将值放在JLabel中的任务.(这是在ActionPerformed中)
Thread t = new Thread() {
public void run() {
for (int i = 0; i < 2000000; i++) {
counter++;
label.setText(Integer.toString(counter));
}
}
};
t.start();
Run Code Online (Sandbox Code Playgroud)
我被告知使用抽象的SwingWorker类并覆盖doInBackground,process和done等方法,而不是这个简单的代码片段.
只需使用Thread更新标签,它就可以正常工作.为什么要创建一个扩展swingworker并实现抽象方法的新类?我现在只能把Swing-worker视为线程安全,那是答案吗?
为什么隐藏的形式在失去焦点时不显示?离开输入时警报很好,但其他隐藏的形式仍然不存在.
HTML
<body>
<input type="text" id="myinput" value="">
<input type="hidden" id="validation_message_email" value="enter a valid email">
</body>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
window.onload = function() {
$("#myinput").blur(myAlert);
};
function myAlert() {
alert("This input field has lost its focus.");
$("#validation_message_email").show();
}
Run Code Online (Sandbox Code Playgroud) c ×3
javascript ×3
jquery ×2
android ×1
c++ ×1
dom ×1
fflush ×1
gcc ×1
html ×1
java ×1
linux ×1
pointers ×1
polymorphism ×1
scanf ×1
setattribute ×1
stdin ×1
swing ×1
swingworker ×1